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

Здесь обсуждается всё, что касается макросов.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Скрипт написан для иллюстрации работы с wxLua.

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

Attachments
_viewer.wx.lua.1.0.3.7z
(3.29 KiB) Downloaded 74 times
Last edited by IgorZ on Thu 19 Dec, 2019 09:29, edited 5 times in total.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post 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, будьте внимательнее с выбором темы для своих сообщений.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

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

И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

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

И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.
На самом деле есть разница. Перехват ключа может приводить к запуску другого процесса, не связанного с viewer-ом. А перехват события происходит именно при открытии файла вьюером, независимо, чем это открытий инициировано. Простейший пример: QView. Никакие кнопки нажимать не надо; достаточно просто перейти на другой файл.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h wrote: Wed 04 Dec, 2019 16:55 Никакие кнопки нажимать не надо; достаточно просто перейти на другой файл
А как не нажав ни одной кнопки перейти на другой файл?
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

citRiks wrote: Wed 04 Dec, 2019 19:45 А как не нажав ни одной кнопки перейти на другой файл?
Кручением колёсика мыши, например.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

HaRT wrote: Wed 04 Dec, 2019 19:53 Кручением колёсика мыши, например
В контексте обсуждаемого это тоже действие пользователя как и нажатие кнопки.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Wed 04 Dec, 2019 19:45 А как не нажав ни одной кнопки перейти на другой файл?
В макросе по таймеру panel.SetPath(…).
Вы хотите доказать, что эвент (перехват события) тождественен макросу (перехвату нажатия кнопки). Тогда Вам придётся вешать макрос НА ВСЕ кнопки: например, в быстром поиске указатель тоже перескакивает, и, соответственно, во вьюере переоткрывается другой файл. Да ещё и анализировать, сместился ли указатель по клавише. Проще признать, что это, всё же разные вещи.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h wrote: Wed 04 Dec, 2019 22:33 Вы хотите доказать, что эвент (перехват события) тождественен макросу (перехвату нажатия кнопки)
Всё наоборот. И именно потому, что они не тождественны, изначально я и попросил автора по возможности сделать так чтобы можно было бы использовать сабжевый скрипт не только как Event, но и как обычный макрос.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post 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 скриптом.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post 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? Странная логика, как на мой взгляд. Тем более, что если назначить на все эти клавиши один и тот же скрипт, то и открывать он их будет одинаково, независимо от того, какой клавишей его вызвали.
Last edited by IgorZ on Fri 06 Dec, 2019 07:09, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

IgorZ wrote: Fri 06 Dec, 2019 06:45 Собственно, какое именно сообщение об ошибке выводится? По идее, там должна указываться, как минимум, строка.
image.png
Заодно: версия скрипта последняя?
Извините. я перестал следить за макросом _viewer.wx.lua . Скорее всего, нет - 1.0.1 .
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

 ! Message from: HaRT
buniak_a_h, чтобы обсуждение можно было найти по тексту ошибки, крайне желательно выкладывать её в текстовом виде. Как я понимаю, это стандартный MessageBox, т.ч. просто нажатие Ctrl+C поместит весь его текст в буфер обмена. Если моё предположение верно, дополните, пожалуйста, своё сообщение.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

1. Столько лет работаю, не знал, что Ctrl+C копирует MessageBox facepalm2
2. В данном конкретном случае не скопировалось. :-(
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

buniak_a_h wrote: Fri 06 Dec, 2019 14:28 2. В данном конкретном случае не скопировалось.
У вас точно был включён английский язык ввода для этого окна?
И если по Ctrl+C не копируется, то нет ли там возможности выделить текст мышкой?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Fri 06 Dec, 2019 14:38 У вас точно был включён английский язык ввода для этого окна?
1. Сделал маленький тест на Delphi, из одной строки MessageBox(...) - работает. Это - доказательство?
2. И всё же - да. Английский.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post 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.
---------------------------
Да   Нет   Отмена   
---------------------------
Post Reply

Return to “Обсуждение макросов”