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

Но вы можете сделать это с помощью методов setMinimumDate и setMaximumDate.

Чтобы получить введенную дату, вы можете использовать метод date и метод toPyDate, чтобы распечатать дату в более читаемом формате.

<p>Advanced PyQt</p>

Одна из продвинутых возможностей Qt — это поддержка пользовательских стилей.

Самый простой способ изменить внешний вид приложения — это установить глобальный стиль с помощью метода setStyle класса QApplication.

Доступные стили зависят от вашей платформы, но обычно это стили «Fusion», «Windows», «WindowsVista» и «Macintosh».

Если вам нравится глобальный стиль, но вы хотите изменить его цвета, вы можете использовать объект QPalette и метод setPalette.

Все виджеты в Qt содержат палитру и используют ее для рисования.

Это позволяет легко настраивать пользовательский интерфейс.

Здесь мы получаем объект палитры методом palette и модифицируем палитру.

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

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

Это аналог CSS в Qt.

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

Терминология и синтаксические правила таблицы стилей Qt почти идентичны таблицам стилей CSS в HTML.

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

И Qt имеет встроенную поддержку автозавершения текста с помощью класса QCompleter.

И QCompleter поддерживается виджетами QLineEdit и QComboBox.

Когда пользователь вводит текст, QCompleter предлагает возможные способы завершения ввода на основе списка слов, предоставленного моделью.

Модель может быть в простом случае просто списком слов.

Обычно вы создаете объект QCompleter, передавая модель в конструктор.

У виджетов, поддерживающих QCompleter, есть метод setCompleter, который позволяет указать средство завершения, которое будет использоваться для виджета.

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

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

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

Затем создается завершитель, который создается с передачей списка строк в качестве модели.

И виджеты QLineEdit и QComboBox связываются с завершителем.

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

QTabWidget предоставляет панель вкладок и область страницы.

Отображается страница под первой вкладкой, а остальные страницы скрываются.

И пользователь может просмотреть любую страницу, щелкнув нужную вкладку.

В этом примере содержимое формы сгруппировано по двум страницам.

И каждая группа виджетов отображается на отдельной вкладке.

Само окно верхнего уровня — это QTabWidget. И в него добавлены две вкладки.

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

И один из способов одновременного отображения нескольких окон — создать их как независимые окна.

Это называется SDI (единый интерфейс документа).

Однако это требует больше ресурсов памяти, так как каждое окно может иметь свою собственную систему меню, панель инструментов и т. д.

Другой подход — это приложения MDI (Multiple Document Interface), которые потребляют меньше ресурсов памяти.

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

И виджет-контейнер называется QMdiArea.

Дочерние окна в этой области являются экземплярами класса QMdiSubWindow.

И можно установить любой QWidget как внутренний виджет объекта subWindow.

Подокна в области MDI могут быть расположены каскадом или мозаикой.

Здесь мы создаем QMdiArea и устанавливаем расположение подокон мозаикой.

Затем создаем подокна и устанавливаем в каждое подокно виджет с компоновкой.

И добавляем подокна в QMdiArea.

<p>PySide</p>

PySide — это библиотека Python и обертка Qt для создания кроссплатформенных графических пользовательских интерфейсов.

В отличие от PyQt, библиотека

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

PySide реализован в виде набора модулей Python.

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

Для создания PySide приложения создадим в

PyCharm

проект.

Далее в окне терминала наберем команду установки библиотеки PySide.

pip install PySide6

После установки библиотеки, создадим в проекте файл питона и наберем в нем код.

Затем нажмем правой кнопкой мыши на файле и выберем Run.

В результате должно открыться окно PySide приложения.

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

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