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

Компоновка 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, если флажок выбран.



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

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

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

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

Есть еще один метод, который вы можете использовать — это метод isChecked, который возвращает true или false, показывая состояние выбора переключателя.



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

Однако, в отличие от QLineEdit, который вводит только одну строку, QTextEdit позволяет ввести несколько строк текста.

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

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

Метод setUndoRedoEnabled отключает / включает возможность для пользователя использовать функции Undo и Redo с помощью клавиш Ctrl + Z и Ctrl + Y.



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

Перейти на страницу:

Похожие книги

Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Вадим Васильевич Лысенко , Лариса Александровна Малинина , Максим Анатольевич Беляев

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Внедрение SAP R/3: Руководство для менеджеров и инженеров
Внедрение SAP R/3: Руководство для менеджеров и инженеров

Это практическое всеобъемлющие руководство было написано специально для тех, кто выбирает стратегию внедрения SAP в организации. «Внедрение SAP R/3: руководство для менеджеров и инженеров» объясняет, что означает понятие «эпоха ERP», почему информация является одним из ключевых ресурсов предприятия, как SAP способствует росту конкурентоспособности компании, а также преимущества методологии ASAP в планировании и использовании ресурсов при внедрении SAP. Подход к ERP-системам, используемый в данной книге, будет крайне полезен менеджерам и специалистам, которым необходимо представить высшему руководству своих компаний основания для внедрения SAP; кроме того, данная книга будет весьма полезной тем, кто занимается проектами SAP или планирует такой проект в ближайшем будущем. Для тех читателей, кто непосредственно занят в проектах SAP, эта книга станет надежным руководством и поможет внести существенный вклад в развитие проекта.

Вивек Кале

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
В шаге от вечности. Как я стал киборгом, чтобы победить смерть
В шаге от вечности. Как я стал киборгом, чтобы победить смерть

• Захватывающая история от первого лица – ученого, который решил превратиться в киборга, чтобы победить неизлечимую болезнь, поразившую его ЦНС.• Реальный опыт использования самых последних достижений робототехники, ИИ и хирургии в создании получеловека-полуробота.• Описание эксперимента, который способен изменить будущее смертельно больных людей.В 2017 году американскому ученому-робототехнику Питеру Скотту-Моргану диагностировали боковой амиотрофический склероз – болезнь, которую врачи признают неизлечимой (этот недуг в свое время разрушил нервные клетки Стивена Хокинга). Но Скотт-Морган не сдался. Он использовал обширные знания, опыт и новейшие технологии, чтобы заменить часть пострадавших функций своего организма электроникой. Затем ученый решил переместить свой аватар в компьютер с помощью искусственного интеллекта и стать Питером 2.0, чтобы не просто победить болезнь, но получить шанс на вечную жизнь в машине. Эта книга описывает эксперимент, похожий на сюжет научно-фантастического фильма, однако совершенно реальный. Благодаря стараниям ученого люди с инвалидностью получают шанс выжить. Эксперимент Питера 2.0 способен изменить будущее.Цитаты«Была зима. Мы отправились в погоню за северным сиянием и забрались уже очень далеко к северу от полярного круга, где я и отмокал в тот день в горячей ванне. Потом встал – вода была еще теплой – и вытер полотенцем все тело выше колен. Поднял левую ногу, стряхнул капли, как собака, которая наступила во что-то неприятное, и поставил ее на коврик. Как следует отряхнуть правую ногу я не смог. Она лишь слегка колыхалась».«Каждому человеку от рождения дано право изменить мир. К этому выводу я пришел к своему шестнадцатому дню рождения, и мне нравилось думать, что добиться перемен можно, только нарушая правила».«Месяца четыре, если не ошибаюсь, я провел в стадии отрицания, прежде чем принять, наконец, для себя новую истину: вероятно, это не просто период. Вероятно, я сейчас не просто экспериментирую с новым стилем жизни, подразумевающим ограниченные возможности, чтобы потом вернуться к привычному, как у всех, темпу передвижения. Вероятно, теперь я инвалид».Для кого:Для тех, кто интересуется последними достижениями в области ИИ, хирургии и робототехники.

Питер Скотт-Морган

Зарубежная компьютерная, околокомпьютерная литература