Найти в Дзене
programmer's notes (python and more)

Программироание на языке python. Библиотека PyQt5. Вкладки в окне QWidget (QTabWidget)

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Создания окна с вкладками (QTabWidget). Способ первый

Дошла очередь и до вкладок. Иногда подходишь к компьютеру студента, а у него там в браузере штук пятьдесят вкладок. - Зачем тебе столько? - Ну я ж работаю. - А почему же мне хватает трёх-четырёх? Эээх, молодость, молодость: И жить торопятся и чувствовать спешат.

Ну сегодня рассмотрим первый способ создания вкладок. Будем создавать их в обычном окне QWidget (не QMainWindow).

Ниже представлена программа с четырьмя вкладками (см. рисунки 1-4).

Скриншот программы "Окно с вкладками". Текст программы см. ниже по ссылке
Скриншот программы "Окно с вкладками". Текст программы см. ниже по ссылке
primer263.py

Пояснения к программе

  • Алгоритм создания вкладок, который был представлен программой выше, можно описать так: 1. Создаём окно, дочернее главному окну (оба окна QWidget). 2. В этом окне создаём макет QVBoxLayout. 3. Создаём объект QTabWidget. 4. Создаём вкладки как объекты QWidget. 5. Добавляем окна-вкладки в объект QTabWidget. 6. При необходимости добавляем элементы окна во вкладки. 7. Добавляем объект QTabWidget в макет. 8. Установить макет в окно QWidget.setLayout().
  • Т.е. в данном подходе присутствуют три разных объекта QWIdget, которые по сути вложены друг в друга.
  • Мы впервые используем макетный класс QVBoxLayout. Ранее мы уже использовали макетный класс QGridLayout (см. здесь и здесь). Класс QVBoxLayout используется для вертикального выравнивания элементов в окне. Можно было бы использовать и другой класс, просто наконец нужно было упомянуть и его.
  • Обращаю внимание, что мы можем не только наполнять вкладки разными элементами, но и менять их цвет, уже известным нам способом через setStyleSheet().

Рисунок 1. Вкладка с QLabel
Рисунок 1. Вкладка с QLabel

Рисунок 2. Вкладка QPushButton
Рисунок 2. Вкладка QPushButton

Рисунок 3. Вкладка QLineEdit
Рисунок 3. Вкладка QLineEdit

Рисунок 4. Окрашенная вкладка
Рисунок 4. Окрашенная вкладка

Возникает, конечно, вопрос: а нужно ли было вводить дополнительное окно в окне (объект mytabs в win)? Это просто приём с дополнительным окном-контейнером для объекта QTabWidget. Но можно и без него - сразу создавать вкладки в главном окне. Программу, которая это делает, см. ниже.

Скриншот ещё одной версии программы с вкладками в QWidget. Текст программы см. по ссылке ниже
Скриншот ещё одной версии программы с вкладками в QWidget. Текст программы см. по ссылке ниже
primer265.py

Ну, пока всё!

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

Вам нравятся вкладки? Тогда вам сюда
Вам нравятся вкладки? Тогда вам сюда