Page 2 of 3

_viewer.wx.lua - просмотр графических файлов

Posted: Tue 26 Nov, 2019 07:46
by IgorZ
Скрипт написан для иллюстрации работы с wxLua.

Скрипт позволяет просматривать графические файлы во многих форматах, в том числе, анимированные.


_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 13:17
by HaRT

Latest post of the previous page:

 ! Message from: HaRT
IgorZ wrote:
Wed 04 Dec, 2019 05:42
Так это про демонстрационный скрипт просмотра? С этим - в его тему.
IgorZ wrote:
Wed 04 Dec, 2019 05:42
Любое дальнейшее обсуждение скрипта - только в профильной теме.
Я перенёс.
buniak_a_h, будьте внимательнее с выбором темы для своих сообщений.

_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 14:26
by citRiks
IgorZ wrote:
Wed 04 Dec, 2019 06:00
wxLua должен работать с PDF
Сомневаюсь, что я самостоятельно смогу разобраться. Так что придётся дожидаться. В надежде на то, что потребность в оперативном чтении пдф-ов скриптом в Фаре есть не только у меня, и кто-то из сведущих заинтересуется.
???
Периодически попадаются "серые" сканы. И портабельный бесплатный STDU Viewer, например, перед печатью может их осветлить и фон будет чистым в т.ч. и на бумаге. А SumatraPDF такого не умеет и посылает на печать как есть.
Эвент перехватывает события, а не ключи
Это абсолютно верно с позиции программиста. Пользователь чтобы вызвать событие "Посмотреть картинку" нажимает ключ F3. А эвент перехватывает это событие и обрабатывает его по-своему. Что для пользователя выглядит как перехват ключа F3. Т.е. для пользователя никакой кучи-малы. Он может просто даже не задумывается о том, что там фактически делает эвент. Пользователь видит только результат нажатия на конкретную кнопку.

И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.

_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 16:55
by buniak_a_h
citRiks wrote:
Wed 04 Dec, 2019 14:26
Эвент перехватывает события, а не ключи
Это абсолютно верно с позиции программиста. Пользователь чтобы вызвать событие "Посмотреть картинку" нажимает ключ F3. А эвент перехватывает это событие и обрабатывает его по-своему. Что для пользователя выглядит как перехват ключа F3. Т.е. для пользователя никакой кучи-малы. Он может просто даже не задумывается о том, что там фактически делает эвент. Пользователь видит только результат нажатия на конкретную кнопку.

И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.
На самом деле есть разница. Перехват ключа может приводить к запуску другого процесса, не связанного с viewer-ом. А перехват события происходит именно при открытии файла вьюером, независимо, чем это открытий инициировано. Простейший пример: QView. Никакие кнопки нажимать не надо; достаточно просто перейти на другой файл.

_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 19:45
by citRiks
buniak_a_h wrote:
Wed 04 Dec, 2019 16:55
Никакие кнопки нажимать не надо; достаточно просто перейти на другой файл
А как не нажав ни одной кнопки перейти на другой файл?

_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 19:53
by HaRT
citRiks wrote:
Wed 04 Dec, 2019 19:45
А как не нажав ни одной кнопки перейти на другой файл?
Кручением колёсика мыши, например.

_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 20:13
by citRiks
HaRT wrote:
Wed 04 Dec, 2019 19:53
Кручением колёсика мыши, например
В контексте обсуждаемого это тоже действие пользователя как и нажатие кнопки.

_viewer.wx.lua - просмотр графических файлов

Posted: Wed 04 Dec, 2019 22:33
by buniak_a_h
citRiks wrote:
Wed 04 Dec, 2019 19:45
А как не нажав ни одной кнопки перейти на другой файл?
В макросе по таймеру panel.SetPath(…).
Вы хотите доказать, что эвент (перехват события) тождественен макросу (перехвату нажатия кнопки). Тогда Вам придётся вешать макрос НА ВСЕ кнопки: например, в быстром поиске указатель тоже перескакивает, и, соответственно, во вьюере переоткрывается другой файл. Да ещё и анализировать, сместился ли указатель по клавише. Проще признать, что это, всё же разные вещи.

_viewer.wx.lua - просмотр графических файлов

Posted: Thu 05 Dec, 2019 14:33
by citRiks
buniak_a_h wrote:
Wed 04 Dec, 2019 22:33
Вы хотите доказать, что эвент (перехват события) тождественен макросу (перехвату нажатия кнопки)
Всё наоборот. И именно потому, что они не тождественны, изначально я и попросил автора по возможности сделать так чтобы можно было бы использовать сабжевый скрипт не только как Event, но и как обычный макрос.

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 06:45
by IgorZ
buniak_a_h wrote:
Wed 04 Dec, 2019 05:26
IgorZ wrote:
Wed 04 Dec, 2019 05:19
А если явно указать полное имя, включая расширение - откроет?
Я не понял, где надо указывать. Там же висит Event на открытие во вьюере.
На самом деле пришлось пока заблокировать макрос: на каждый просмотр выводит сообщение об ошибке; выбираешь Cancel - дальше всё прекрасно показывает. Грустно, что сообщение выводится и при попытке просмотра, скажем, qqq.lua, main.cpp или aaa.txt . Т.е. таких файлов, которые совсем не хочется просматривать как медиа. Сообщение (если выбрать именно Cancel) выводится только один раз, но зато для каждого типа файлов. Достаёт…
Собственно, какое именно сообщение об ошибке выводится? По идее, там должна указываться, как минимум, строка. Заодно: версия скрипта последняя?
buniak_a_h wrote:
Wed 04 Dec, 2019 05:26
На самом деле конкретно файлы типа ts показывает "молча" - т.е. без звука. Видимо, всё же, формат не полностью поддерживается… Грустно, что у меня телевизор других форматов не знает.
Вообще-то, скрипт, как следует из описания, предназначен для просмотра графических файлов, то есть различных статических форматов и анимированных ani/gif. Что и как он находит в видео - понятия не имею. Для видеофайлов в wxLua есть другие объекты. Так что, естественно, я вначале подумал, что у Вас какая-то проблема с другим, написанным Вами с использованием wxLua скриптом.

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 07:06
by IgorZ
citRiks wrote:
Wed 04 Dec, 2019 14:26
???
Периодически попадаются "серые" сканы. И портабельный бесплатный STDU Viewer, например, перед печатью может их осветлить и фон будет чистым в т.ч. и на бумаге. А SumatraPDF такого не умеет и посылает на печать как есть.
А-а-а... Так это называется не "пачкает", а "не умеет чистить грязные сканы". "Пачкает" - это когда при печати на бумаге оказывается мусор, отсутствующий в электронном документе. Выражайтесь грамотнее.

Кстати, STDU Viewer тоже вполне хорошо подключается для просмотра.
citRiks wrote:
Wed 04 Dec, 2019 14:26
Эвент перехватывает события, а не ключи
Это абсолютно верно с позиции программиста. Пользователь чтобы вызвать событие "Посмотреть картинку" нажимает ключ F3. А эвент перехватывает это событие и обрабатывает его по-своему. Что для пользователя выглядит как перехват ключа F3. Т.е. для пользователя никакой кучи-малы. Он может просто даже не задумывается о том, что там фактически делает эвент. Пользователь видит только результат нажатия на конкретную кнопку.
Ну тогда не обижайтесь, если Вас не понимают и, соответственно, не в состоянии отреагировать на Ваши крики о помощи. Хотите адекватной реакции - излагайте проблему чётко и ясно.
citRiks wrote:
Wed 04 Dec, 2019 14:26
И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.
То есть, Вы хотите, стоя на файле, по нажатию CtrlP попытаться открыть его как .PDF, а, стоя на нём же, по нажатию CtrlD открыть его как .DJVU? Даже в том случае, если это файл картинка.jpg? Странная логика, как на мой взгляд. Тем более, что если назначить на все эти клавиши один и тот же скрипт, то и открывать он их будет одинаково, независимо от того, какой клавишей его вызвали.

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 07:35
by buniak_a_h
IgorZ wrote:
Fri 06 Dec, 2019 06:45
Собственно, какое именно сообщение об ошибке выводится? По идее, там должна указываться, как минимум, строка.
image.png
Заодно: версия скрипта последняя?
Извините. я перестал следить за макросом _viewer.wx.lua . Скорее всего, нет - 1.0.1 .

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 12:32
by HaRT
 ! Message from: HaRT
buniak_a_h, чтобы обсуждение можно было найти по тексту ошибки, крайне желательно выкладывать её в текстовом виде. Как я понимаю, это стандартный MessageBox, т.ч. просто нажатие Ctrl+C поместит весь его текст в буфер обмена. Если моё предположение верно, дополните, пожалуйста, своё сообщение.

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 14:28
by buniak_a_h
1. Столько лет работаю, не знал, что Ctrl+C копирует MessageBox facepalm2
2. В данном конкретном случае не скопировалось. :-(

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 14:38
by HaRT
buniak_a_h wrote:
Fri 06 Dec, 2019 14:28
2. В данном конкретном случае не скопировалось.
У вас точно был включён английский язык ввода для этого окна?
И если по Ctrl+C не копируется, то нет ли там возможности выделить текст мышкой?

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 14:42
by buniak_a_h
HaRT wrote:
Fri 06 Dec, 2019 14:38
У вас точно был включён английский язык ввода для этого окна?
1. Сделал маленький тест на Delphi, из одной строки MessageBox(...) - работает. Это - доказательство?
2. И всё же - да. Английский.

_viewer.wx.lua - просмотр графических файлов

Posted: Fri 06 Dec, 2019 16:33
by buniak_a_h
HaRT,

Code: Select all

---------------------------
wxWidgets Debug Alert
---------------------------
/usr/src/packages/BUILD/sources/wxWidgets-3.0.2/src/common/image.cpp(1739): assert "IsOk()" failed in GetWidth(): invalid image
Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings.
---------------------------
Да   Нет   Отмена   
---------------------------