Рубрики
Без рубрики

Pyside: стандартные диалоги и окна сообщений

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Инструментарий Pyside GUI для Python имеет несколько стандартных диалогов и ящиков сообщений, которые вы можете использовать как есть. Вы также можете создавать пользовательские диалоги, но мы будем экономить это для будущей статьи. В этом посте мы охватим следующие диалоги:

  • Цветная диалог
  • Файл Диалог
  • Диалог шрифтов
  • Входной диалог
  • Диалоговые окна предварительного просмотра Print & Print

Мы также охватим коробки сообщений Pyside. Весь код в этой статье был протестирован на Windows 7 Professional с Pyside 1.2.2 и Python 2.6.6. Теперь давайте доберемся до этого!

Получение информации со стандартными диалоговыми окнами

Мы начнем с некоторым кодом, который покажет каждый из первых четырех диалогов, перечисленных выше. Другие два более сложны и получают свой собственный специальный демо-код. После кода мы посмотрим на код каждого диалога индивидуально, чтобы помочь понять его.

Ну, это выглядит довольно чисто и прямо вперед. Давайте немного сломаемся. В начале метода __init__ вы можете прокомментировать альтернативный способ инициализации QWidget, используя Super Python. Вы можете сделать это в любом случае, и ваша программа будет работать нормально. Я просто хотел показать вам оба способа сделать это. Вы также заметите, что все этот код отображается виджеты QLabel и четырех QPushbutton. Мы подключаем сигналы (то есть события) от кнопок к слотам (то есть обработчики событий) с использованием двух разных методов. Первый – это больше «питон» в том, что он использует точечную нотацию:

Второй способ (который мы используем один раз), вероятно, наиболее распространен, вы увидите его, но это немного сложнее понять, если вы просто используете код Python:

Оба способа подключения сигналов к слотам работает. Обратите внимание, что мы обязательно нажал мероприятие. Это означает, что когда пользователь нажимает кнопку, он вызывает подключенный метод. Теперь мы посмотрим на каждый из диалогов в свою очередь.

Цвет Pyside Dialog

Диалоговое окно Pyside Color – это довольно стандартный цветовой диалог, который вы увидите в самых простых программах рисования, такие как краска Windows. Чтобы создать это, мы сделаем следующее:

Здесь мы называем Qtgui.qcolordialog.getcolor () Чтобы вернуть цвет, выбранный пользователем, и также создать диалог. Если выбранный цвет действителен, мы применим его к нашему QPushbutton. Вы заметите, что в конце этого метода прокомментирована линия. Мне сказали, что вы можете использовать тип Pyside CSS для изменения цвета фона кнопки, но я не мог понять правильный способ сделать это. Некоторые люди на канале Pyside IRC сказали, что комментарированная линия должна работать. Другие говорили, что это должно быть просто Фон вместо Фон-цвет , но это тоже не сработало для меня. Даже с методом палитры, показанный здесь, цвет фона все еще не меняется. Вместо этого вы заметите только тонкое изменение цвета на контур кнопки.

Диалог файла Pyside

Диалоговое окно файла Pyside должно быть знакомым большинству людей, поскольку он совсем внимательно соответствует диалогу нативной файлы (по крайней мере, на Windows). Вот код, чтобы создать это:

Мы используем getopenfilename Чтобы вернуть путь к файлу в кортеж, который также включает в себя тип файла, который в этом случае является Все файлы (*. *) Отказ Мы также устанавливаем наш QLABEL на путь, который был возвращен. Есть также способ в нашем главном коде под названием opendirectorydialog который использует тот же вызов подписью, но вместо GetOpenFilename мы используем getexistingdirectory Отказ Смотрите пример ниже:

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

Диалог шрифтов Pyside

Диалог шрифтов Pyside очень похож на тот, который вы увидите в более старых версиях продуктов Microsoft Office. Создание диалога довольно просто:

Как видите, вы просто создаете диалог и вызовите его GetFont () метод. Это возвращает выбранный шрифт, а также ли нажатой кнопку ОК. Если это было, мы сбросим наш виджет QLabel с новым шрифтом.

Диалог ввода Pyside

Диалог ввода Pyside также довольно прост. Тем не менее, есть четыре сорта: текст, целое число, двойное и пункт. Как это довольно очевидно, эти возвращаемые текст, целые числа, двойники (I.E. float) и элементы, которые позволяют пользователю выбирать из списка элементов из Combobox. Здесь мы показываем, как создать текстовую версию:

Если вы хотите увидеть примеры других типов входных диалогов, я рекомендую увидеть Писид-примеры папки на Git конкретно StandardDialogs.py скрипт Вы также можете увидеть скриншоты всех четырех этих виджетов здесь Отказ

На данный момент мы готовы узнать о двух типах диалогов печати.

Диалоги печати Pyside

Для этой демонстрации мы создаем простое маленькое окно с QTextedit для удержания некоторых примеров текста и две кнопки. Мы скопируем и вставьте пример кода из предыдущего раздела в это демонстрационное приложение, а затем нажмите кнопку печати. Вот демонстрационный код:

Если вы нажмете кнопку «Печать», вы должны увидеть диалоговое окно, похожее на один приведенный ниже (если вы находитесь в Windows 7):

Давайте посмотрим на код за этим диалоговым окном:

Здесь мы создали меры QprintDialog И мы покажем это, позвонив своему exec_ () метод. Если пользователь на самом деле попадает на кнопку печати, мы извлеким QTextDocument от контроля QTextedit и позвоните его print_ () Метод, передавая его диалоговое окно принтера.