Чтение онлайн

на главную - закладки

Жанры

Создание настольных Python приложений с графическим интерфейсом пользователя
Шрифт:

Эта команда помещает исполняемый двоичный файл в целевую папку текущего каталога.

Теперь вы можете отправлять его для установки приложения.

Виджеты и компоновки PyQt

Система компоновки Qt предоставляет простой и мощный способ организации дочерних виджетов внутри родительского виджета.

Qt

предоставляет набор классов управления компоновкой.

Эти компоновки автоматически позиционируют и изменяют размер виджетов.

И все виджеты Qt могут использовать компоновки для управления своими дочерними элементами с помощью функции setLayout.

Здесь мы с помощью компоновки QHBoxLayout располагаем метки горизонтально в окне QWidget.

Компоновка QVBoxLayout размещает метки вертикально.

Компоновка QGridLayout располагает элементы в сетке.

При этом для каждого элемента можно указать строку, столбец, в которых должен находиться элемент.

Также можно указать затем сколько строк и столбцов должен заполнять элемент.

Компоновка QFormLayout добавляет два виджета в строку, обычно QLabel и QLineEdit для создания форм.

В качестве резюме – виджеты могут иметь в качестве родительских только другие виджеты, но не компоновки.

Но вы можете вкладывать компоновки в родительскую компоновку с помощью метода addLayout, тогда внутренний макет становится дочерним по отношению к макету, в который он вставлен.

Теперь, модуль Qt Widgets предоставляет набор элементов пользовательского интерфейса для создания пользовательских интерфейсов приложения.

И все, что вы видите в приложении PyQt, представляет собой виджеты: кнопки, метки, окна, диалоговые окна, индикаторы выполнения и т. д.

С меткой мы уже познакомились.

При создании метки, передавая в конструктор в качестве параметра объект окна, мы сообщаем, что метка является частью окна.

Метки имеют размер по умолчанию, и для длинных строк текста размер по умолчанию может быть слишком мал.

К счастью, у нас есть метод adjustSize, который автоматически настраивает размер метки.

В противном случае длинный текст будет отображаться на экране только частично.

И метод move определяет начальную позицию метки от левого верхнего угла экрана.

Каждому

графическому интерфейсу нужен какой-нибудь способ получения ввода от пользователя.

В PyQt такой способ ввода данных – это использование виджета QLineEdit.

Или если вы хотите получить ввод многострочного текста, вам нужно использовать виджет QTextEdit.

И конечно ввод как правило используется вместе с кнопкой QPushButton.

Чтобы получить введенный текст из виджета QLineEdit, вы должны использовать метод text.

Здесь мы создаем кнопку Submit, которая вызывает функцию show, использующую метод text виджета QLineEdit.

Мы также создаем кнопку Clear, которая вызывает метод clear виджета QLineEdit, который удаляет все его содержимое.

Метод SetEchoMode принимает несколько различных «режимов», одним из которых является режим пароля, который скрывает ввод.

Используя метод setFixedWidth, мы можем установить размер виджета QLineEdit в пикселях.

Значение по умолчанию для каждого виджета составляет около 100 пикселей.

Теперь о кнопке QPushButton.

Как следует из названия, это кнопка, которая запускает функцию при нажатии.

Кнопка, которая не связана с функцией, бесполезна.

Кнопки предназначены для подключения функции, которая будет выполняться после нажатия кнопки.

И такая функция подключается с помощью метода clicked.connect.

Также вы можете установить изображение на кнопку, с помощью виджета QIcon.

Просто передайте в него путь к файлу, и все готово.

Виджет QComboBox представляет собой раскрывающийся список элементов, из которых пользователь может выбрать свой вариант.

Преимущество этого виджета в том, что он занимает очень мало места на экране, при наличии большого списка элементов.

Здесь мы добавляем элементы в список по одному методом addItem.

Хотя мы можем добавить сразу все элементы кортежем с помощью метода addItems.

Зафиксировать ширину списка мы можем методом setFixedWidth.

Теперь, обработать выбор пользователем элемента в списке мы можем с помощью метода currentText, который возвращает элемент списка в виде строки.

Теперь перейдем к флажкам и радиокнопкам.

И здесь мы можем использовать сам флажок как кнопку, чтобы связать его с функцией обработки выбора флажка.

Мы делаем это с помощью метода stateChanged.connect.

Вы можете получить значение флажка с помощью метода text, который вернет текстовое значение флажка.

И вы можете использовать метод checkState, который возвращает целое число 0, если флажок не выбран и 2 – если он выбран.

Метод isChecked возвращает true, если флажок выбран.

В отличие от флажка, вы можете выбрать только одну радиокнопку из многих.

И здесь мы также можем использовать саму радиокнопку как кнопку, чтобы связать ее с функцией обработки выбора.

Поделиться:
Популярные книги

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Друд, или Человек в черном

Симмонс Дэн
Фантастика:
социально-философская фантастика
6.80
рейтинг книги
Друд, или Человек в черном

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле