Как сделать скриншот вашего приложения — wxPython #2

Вы когда-нибудь задумывались о том, как было бы круто, если бы ваши wxPython приложения делали скриншоты себя? Что же, Андреа Гавана (один из главных разработчиков wxPython) нашёл отличный способ сделать это. А благодаря комбинации из отправленных им инструкций и того, что я прочёл в сторонних источниках, вы узнаете не только как сделать скриншот, но и как отправить его на принтер! Когда мы закончим, у вас будет приложение, которое должно выглядеть вот так:

Как сделать скриншот вашего приложения - wxPython #2

Приступая к работе

Существует несколько способов создания этого проекта. Вы можете написать непосредственно код, делающий скриншоты, или же приложение, которое запускает этот код в нужный момент. Мы начнём с самого кода. В любом случае, давайте взглянем на него:



 

Данный фрагмент кода был рамкой, содержащей две кнопки. Да, он немного скучный, но для примера вполне сгодится. Нас больше всего интересует метод onTakeScreenShot. Как я уже упоминал ранее, он основан на скрипте Андреа Гаваны. Как бы то ни было, я также добавил пару строк, написанных Джон Торресом, которые оптимизируют скрипт для Linux, ведь изначально он был написан для Windows. В комментариях я изложил историю кода, так что уделите ей немного времени, когда появится свободная минутка. Теперь мы научимся тому, как отправить скриншот на печать принтеру.

Простой скрипт для принтера

Создание простого приложения, которое распечатывает скриншот, по сложности примерно идентично созданию приложения для скриншота. Комбинация предыдущего скрипта с этим позволит вам создать простую утилиту для распечатки скриншотов.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Когда мы закончим, эта утилита будет выглядеть примерно так:

Как сделать скриншот вашего приложения - wxPython #2

Данный скрипт имеет чёткое название для изображения, так что, если вы хотите сохранить его под другим именем, вам придётся добавить эту возможность самостоятельно. Давайте уделим несколько минут прочтению самого кода:

Данный маленький скрипт использует виджет HtmlWindow и метод HtmlEasyPrinting для отправки изображения на принтер. Другими словами, вы можете создать действительно простой HTML код (узнайте больше о методе createHtml), а затем применить HtmlWindow, чтобы отобразить его. Затем используйте HtmlEasyPrinting, чтобы отправить его на принтер. После чего отобразиться диалог, позволяющий выбрать на какой именно принтер отправить изображение.

Подведем итоги

Возможность сохранения скриншота вашего приложения может оказаться крайне полезной во время дебагинга. Например, если вы пишите автоматический тестер для вашего программного обеспечения, вы сможете сохранить скриншот того, как ваше приложение перестало отвечать или выдало предупреждение. Это поможет выяснить причину данного инцидента. Я надеюсь, что данная статья была вам полезна. Мне этот метод помогал не один раз.

Продолжение

Следующий урок №3: Как вставить иконку в строку заголовка

Предыдущий урок №1: Динамическое добавление и удаление виджетов