| Виджет |
Описание |
Основные свойства |
Пример кода |
| QWidget |
Базовый виджет, контейнер для других виджетов. |
setWindowTitle() — заголовок окна
resize() — размеры окна
show() — отображение виджета
setLayout() — установка компоновки
|
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QWidget пример")
window.resize(400, 200)
layout = QVBoxLayout()
layout.addWidget(QLabel("Виджет QWidget является контейнером"))
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QPushButton |
Кнопка для нажатия пользователем. |
text — текст кнопки
clicked — сигнал нажатия
setEnabled() — активна/неактивна
setCheckable() — переключаемая кнопка
|
from PySide6.QtWidgets import QApplication, QPushButton, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QPushButton пример")
layout = QVBoxLayout()
btn = QPushButton("Нажми меня")
btn.setCheckable(True)
btn.clicked.connect(lambda: print("Нажата кнопка"))
layout.addWidget(btn)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QLabel |
Метка для отображения текста или изображения. |
setText() — текст
setPixmap() — изображение
setAlignment() — выравнивание
setWordWrap() — перенос слов
|
from PySide6.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PySide6.QtCore import Qt
from PySide6.QtGui import QPixmap
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QLabel пример")
layout = QVBoxLayout()
label_text = QLabel("Привет, QLabel!")
label_text.setAlignment(Qt.AlignCenter)
label_text.setWordWrap(True)
label_image = QLabel()
label_image.setPixmap(QPixmap("example.png"))
label_image.setAlignment(Qt.AlignCenter)
layout.addWidget(label_text)
layout.addWidget(label_image)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QLineEdit |
Однострочное текстовое поле для ввода данных. |
setText() — текст
setPlaceholderText() — подсказка
setReadOnly() — только для чтения
textChanged — сигнал изменения текста
|
from PySide6.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QLineEdit пример")
layout = QVBoxLayout()
edit = QLineEdit()
edit.setPlaceholderText("Введите текст")
edit.textChanged.connect(lambda t: print(f"Текст изменен: {t}"))
layout.addWidget(edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QTextEdit |
Многострочное текстовое поле с поддержкой форматирования. |
setText() — текст
setReadOnly() — только для чтения
append() — добавить текст
setFont() — шрифт
|
from PySide6.QtWidgets import QApplication, QTextEdit, QWidget, QVBoxLayout
from PySide6.QtGui import QFont
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QTextEdit пример")
layout = QVBoxLayout()
text = QTextEdit()
text.setFont(QFont("Arial", 12))
text.append("Начальный текст")
layout.addWidget(text)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QCheckBox |
Флажок для выбора одного или нескольких вариантов. |
setChecked() — состояние
stateChanged — сигнал изменения
text — текст флажка
|
from PySide6.QtWidgets import QApplication, QCheckBox, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QCheckBox пример")
layout = QVBoxLayout()
checkbox = QCheckBox("Выберите меня")
checkbox.stateChanged.connect(lambda s: print(f"Состояние: {s}"))
layout.addWidget(checkbox)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QRadioButton |
Переключатель для выбора одного варианта из группы. |
setChecked() — состояние
toggled — сигнал переключения
text — текст
|
from PySide6.QtWidgets import QApplication, QRadioButton, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QRadioButton пример")
layout = QVBoxLayout()
radio1 = QRadioButton("Вариант 1")
radio2 = QRadioButton("Вариант 2")
radio1.toggled.connect(lambda checked: print(f"Вариант 1: {checked}"))
radio2.toggled.connect(lambda checked: print(f"Вариант 2: {checked}"))
layout.addWidget(radio1)
layout.addWidget(radio2)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QComboBox |
Выпадающий список для выбора одного варианта. |
addItem() — добавить элемент
currentIndex — текущий индекс
currentText — текущий текст
currentIndexChanged — сигнал при изменении выбора
|
from PySide6.QtWidgets import QApplication, QComboBox, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QComboBox пример")
layout = QVBoxLayout()
combo = QComboBox()
combo.addItem("Вариант 1")
combo.addItem("Вариант 2")
combo.addItem("Вариант 3")
combo.currentIndexChanged.connect(lambda i: print(f"Выбран: {combo.currentText()}"))
layout.addWidget(combo)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QSlider |
Слайдер для выбора числового значения из диапазона. |
setMinimum() / setMaximum() — диапазон
setValue() — текущее значение
setOrientation() — горизонтальный/вертикальный
setTickPosition() — деления
valueChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QSlider, QWidget, QVBoxLayout
from PySide6.QtCore import Qt
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QSlider пример")
layout = QVBoxLayout()
slider = QSlider(Qt.Horizontal)
slider.setMinimum(0)
slider.setMaximum(100)
slider.setValue(50)
slider.setTickPosition(QSlider.TicksBelow)
slider.setTickInterval(10)
slider.valueChanged.connect(lambda val: print(f"Значение: {val}"))
layout.addWidget(slider)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QSpinBox |
Поле для ввода целых чисел с кнопками увеличения/уменьшения. |
setMinimum() / setMaximum() — диапазон
setValue() — текущее значение
setSingleStep() — шаг изменения
valueChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QSpinBox, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QSpinBox пример")
layout = QVBoxLayout()
spin = QSpinBox()
spin.setMinimum(0)
spin.setMaximum(100)
spin.setValue(10)
spin.setSingleStep(5)
spin.valueChanged.connect(lambda val: print(f"Выбрано: {val}"))
layout.addWidget(spin)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QProgressBar |
Индикатор выполнения задачи. |
setMinimum() / setMaximum() — диапазон
setValue() — текущее значение
setFormat() — текстовое отображение
setOrientation() — горизонтальный/вертикальный
|
from PySide6.QtWidgets import QApplication, QProgressBar, QWidget, QVBoxLayout
from PySide6.QtCore import Qt, QTimer
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QProgressBar пример")
layout = QVBoxLayout()
progress = QProgressBar()
progress.setMinimum(0)
progress.setMaximum(100)
progress.setValue(0)
progress.setFormat("Выполнено %p%")
progress.setOrientation(Qt.Horizontal)
def update_progress():
val = progress.value() + 5
if val > progress.maximum():
val = 0
progress.setValue(val)
timer = QTimer()
timer.timeout.connect(update_progress)
timer.start(500)
layout.addWidget(progress)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QTabWidget |
Вкладки для организации нескольких страниц контента. |
addTab(widget, title) — добавить вкладку
setTabsClosable() — вкладки можно закрывать
currentIndex — текущая вкладка
tabCloseRequested — сигнал закрытия вкладки
|
from PySide6.QtWidgets import QApplication, QTabWidget, QWidget, QVBoxLayout, QLabel
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QTabWidget пример")
layout = QVBoxLayout()
tabs = QTabWidget()
tab1 = QWidget()
tab1_layout = QVBoxLayout()
tab1_layout.addWidget(QLabel("Вкладка 1"))
tab1.setLayout(tab1_layout)
tab2 = QWidget()
tab2_layout = QVBoxLayout()
tab2_layout.addWidget(QLabel("Вкладка 2"))
tab2.setLayout(tab2_layout)
tabs.addTab(tab1, "Вкладка 1")
tabs.addTab(tab2, "Вкладка 2")
tabs.setTabsClosable(True)
tabs.tabCloseRequested.connect(lambda i: print(f"Закрыта вкладка {i}"))
layout.addWidget(tabs)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QTableWidget |
Таблица с редактируемыми ячейками. |
setRowCount() / setColumnCount()
setHorizontalHeaderLabels()
setItem(row, col, QTableWidgetItem)
cellChanged
|
from PySide6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QTableWidget пример")
layout = QVBoxLayout()
table = QTableWidget()
table.setRowCount(3)
table.setColumnCount(2)
table.setHorizontalHeaderLabels(["Имя", "Возраст"])
table.setItem(0, 0, QTableWidgetItem("Алексей"))
table.setItem(0, 1, QTableWidgetItem("25"))
table.setItem(1, 0, QTableWidgetItem("Мария"))
table.setItem(1, 1, QTableWidgetItem("30"))
table.setItem(2, 0, QTableWidgetItem("Иван"))
table.setItem(2, 1, QTableWidgetItem("22"))
table.cellChanged.connect(lambda r,c: print(f"Ячейка {r},{c} изменена"))
layout.addWidget(table)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QListWidget |
Список элементов с возможностью выбора одного или нескольких элементов. |
addItem() — добавить элемент
addItems() — добавить несколько элементов
currentItem() — текущий выбранный элемент
itemClicked — сигнал при клике по элементу
|
from PySide6.QtWidgets import QApplication, QListWidget, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QListWidget пример")
layout = QVBoxLayout()
list_widget = QListWidget()
list_widget.addItems(["Элемент 1", "Элемент 2", "Элемент 3"])
list_widget.itemClicked.connect(lambda item: print(f"Выбран: {item.text()}"))
layout.addWidget(list_widget)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QTreeWidget |
Дерево элементов с иерархической структурой. |
setHeaderLabels() — заголовки колонок
addTopLevelItem() — добавить корневой элемент
addChild() — добавить дочерний элемент
itemClicked — сигнал при клике по элементу
|
from PySide6.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QTreeWidget пример")
layout = QVBoxLayout()
tree = QTreeWidget()
tree.setHeaderLabels(["Имя", "Описание"])
parent1 = QTreeWidgetItem(["Раздел 1", "Описание раздела"])
child1 = QTreeWidgetItem(["Подраздел 1", "Описание"])
parent1.addChild(child1)
tree.addTopLevelItem(parent1)
tree.itemClicked.connect(lambda item, col: print(f"Клик по: {item.text(col)}"))
layout.addWidget(tree)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QPlainTextEdit |
Многострочное текстовое поле без форматирования. |
setPlainText() — установить текст
appendPlainText() — добавить текст
setReadOnly() — только для чтения
textChanged — сигнал изменения текста
|
from PySide6.QtWidgets import QApplication, QPlainTextEdit, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QPlainTextEdit пример")
layout = QVBoxLayout()
plain_text = QPlainTextEdit()
plain_text.setPlainText("Начальный текст")
plain_text.textChanged.connect(lambda: print("Текст изменен"))
layout.addWidget(plain_text)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QDateEdit |
Выбор даты с календарем или вручную. |
setDate() — текущая дата
setMinimumDate() / setMaximumDate()
dateChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QDateEdit, QWidget, QVBoxLayout
from PySide6.QtCore import QDate
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QDateEdit пример")
layout = QVBoxLayout()
date_edit = QDateEdit()
date_edit.setDate(QDate.currentDate())
date_edit.dateChanged.connect(lambda date: print(f"Дата изменена: {date.toString()}"))
layout.addWidget(date_edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QTimeEdit |
Выбор времени с кнопками увеличения/уменьшения. |
setTime() — текущее время
timeChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QTimeEdit, QWidget, QVBoxLayout
from PySide6.QtCore import QTime
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QTimeEdit пример")
layout = QVBoxLayout()
time_edit = QTimeEdit()
time_edit.setTime(QTime.currentTime())
time_edit.timeChanged.connect(lambda t: print(f"Время изменено: {t.toString()}"))
layout.addWidget(time_edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QDateTimeEdit |
Выбор даты и времени одновременно. |
setDateTime() — дата и время
dateTimeChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QDateTimeEdit, QWidget, QVBoxLayout
from PySide6.QtCore import QDateTime
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QDateTimeEdit пример")
layout = QVBoxLayout()
dt_edit = QDateTimeEdit()
dt_edit.setDateTime(QDateTime.currentDateTime())
dt_edit.dateTimeChanged.connect(lambda dt: print(f"Дата и время изменены: {dt.toString()}"))
layout.addWidget(dt_edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QCalendarWidget |
Календарь для выбора даты. |
setSelectedDate() — выбранная дата
selectionChanged — сигнал изменения выбора
|
from PySide6.QtWidgets import QApplication, QCalendarWidget, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QCalendarWidget пример")
layout = QVBoxLayout()
calendar = QCalendarWidget()
calendar.selectionChanged.connect(lambda: print(f"Выбрана дата: {calendar.selectedDate().toString()}"))
layout.addWidget(calendar)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QToolBox |
Контейнер с вкладками в виде панели, только одна видна за раз. |
addItem(widget, text) — добавить страницу
currentIndex — текущая видимая страница
currentChanged — сигнал изменения страницы
|
from PySide6.QtWidgets import QApplication, QToolBox, QWidget, QVBoxLayout, QLabel
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QToolBox пример")
layout = QVBoxLayout()
toolbox = QToolBox()
page1 = QWidget()
page1_layout = QVBoxLayout()
page1_layout.addWidget(QLabel("Страница 1"))
page1.setLayout(page1_layout)
page2 = QWidget()
page2_layout = QVBoxLayout()
page2_layout.addWidget(QLabel("Страница 2"))
page2.setLayout(page2_layout)
toolbox.addItem(page1, "Вкладка 1")
toolbox.addItem(page2, "Вкладка 2")
toolbox.currentChanged.connect(lambda i: print(f"Текущая страница: {i}"))
layout.addWidget(toolbox)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QGroupBox |
Группировка виджетов с рамкой и заголовком. |
setTitle() — заголовок
setLayout() — компоновка виджетов внутри
setCheckable() — возможность выключать группу
|
from PySide6.QtWidgets import QApplication, QGroupBox, QWidget, QVBoxLayout, QPushButton
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QGroupBox пример")
layout = QVBoxLayout()
group = QGroupBox("Группа кнопок")
group.setCheckable(True)
group_layout = QVBoxLayout()
group_layout.addWidget(QPushButton("Кнопка 1"))
group_layout.addWidget(QPushButton("Кнопка 2"))
group.setLayout(group_layout)
layout.addWidget(group)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QSplitter |
Разделитель для изменения размеров соседних виджетов. |
addWidget() — добавить виджет
setOrientation() — горизонтальный/вертикальный
|
from PySide6.QtWidgets import QApplication, QSplitter, QWidget, QVBoxLayout, QTextEdit
from PySide6.QtCore import Qt
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QSplitter пример")
layout = QVBoxLayout()
splitter = QSplitter(Qt.Horizontal)
splitter.addWidget(QTextEdit("Левая панель"))
splitter.addWidget(QTextEdit("Правая панель"))
layout.addWidget(splitter)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QDial |
Круговой регулятор для выбора значения. |
setMinimum() / setMaximum() — диапазон
setValue() — текущее значение
valueChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QDial, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QDial пример")
layout = QVBoxLayout()
dial = QDial()
dial.setMinimum(0)
dial.setMaximum(100)
dial.setValue(25)
dial.valueChanged.connect(lambda v: print(f"Значение: {v}"))
layout.addWidget(dial)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QScrollArea |
Область с полосами прокрутки для любого виджета. |
setWidget() — виджет для прокрутки
setWidgetResizable() — автоматическое изменение размера
|
from PySide6.QtWidgets import QApplication, QScrollArea, QWidget, QVBoxLayout, QLabel
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QScrollArea пример")
layout = QVBoxLayout()
scroll = QScrollArea()
content = QWidget()
content_layout = QVBoxLayout()
for i in range(20):
content_layout.addWidget(QLabel(f"Элемент {i+1}"))
content.setLayout(content_layout)
scroll.setWidgetResizable(True)
scroll.setWidget(content)
layout.addWidget(scroll)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QStackedWidget |
Контейнер, где виден только один виджет за раз. Альтернатива вкладкам. |
addWidget() — добавить страницу
setCurrentIndex() — показать определенную страницу
currentChanged — сигнал при смене страницы
|
from PySide6.QtWidgets import QApplication, QStackedWidget, QWidget, QVBoxLayout, QLabel, QPushButton
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QStackedWidget пример")
layout = QVBoxLayout()
stack = QStackedWidget()
page1 = QWidget()
p1_layout = QVBoxLayout()
p1_layout.addWidget(QLabel("Страница 1"))
page1.setLayout(p1_layout)
page2 = QWidget()
p2_layout = QVBoxLayout()
p2_layout.addWidget(QLabel("Страница 2"))
page2.setLayout(p2_layout)
stack.addWidget(page1)
stack.addWidget(page2)
stack.setCurrentIndex(0)
btn_switch = QPushButton("Переключить страницу")
btn_switch.clicked.connect(lambda: stack.setCurrentIndex(1 if stack.currentIndex()==0 else 0))
layout.addWidget(stack)
layout.addWidget(btn_switch)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QScrollBar |
Полоса прокрутки (горизонтальная или вертикальная). |
setOrientation() — горизонтальная/вертикальная
setMinimum() / setMaximum() — диапазон
setValue() — текущее значение
valueChanged — сигнал изменения
|
from PySide6.QtWidgets import QApplication, QScrollBar, QWidget, QVBoxLayout
from PySide6.QtCore import Qt
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QScrollBar пример")
layout = QVBoxLayout()
scrollbar = QScrollBar(Qt.Horizontal)
scrollbar.setMinimum(0)
scrollbar.setMaximum(100)
scrollbar.setValue(50)
scrollbar.valueChanged.connect(lambda val: print(f"Значение: {val}"))
layout.addWidget(scrollbar)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QCommandLinkButton |
Крупная кнопка с заголовком и описанием, как в мастерах Windows. |
setText() — заголовок
setDescription() — дополнительное описание
clicked — сигнал нажатия
|
from PySide6.QtWidgets import QApplication, QCommandLinkButton, QWidget, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QCommandLinkButton пример")
layout = QVBoxLayout()
btn = QCommandLinkButton("Основное действие", "Дополнительное описание")
btn.clicked.connect(lambda: print("Нажата команда"))
layout.addWidget(btn)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QFrame |
Прямоугольная рамка для визуального оформления и группировки виджетов. |
setFrameShape() — форма рамки
setFrameShadow() — тень рамки
setLineWidth() — толщина линии
setMidLineWidth() — ширина внутренней линии
|
from PySide6.QtWidgets import QApplication, QFrame, QWidget, QVBoxLayout, QLabel
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QFrame пример")
layout = QVBoxLayout()
frame = QFrame()
frame.setFrameShape(QFrame.Box)
frame.setFrameShadow(QFrame.Raised)
frame.setLineWidth(2)
frame.setMidLineWidth(1)
frame_layout = QVBoxLayout()
frame_layout.addWidget(QLabel("Внутри рамки"))
frame.setLayout(frame_layout)
layout.addWidget(frame)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QToolButton |
Кнопка с иконкой, часто используется в панелях инструментов. |
setText() — текст кнопки
setIcon() — иконка
clicked — сигнал нажатия
setToolButtonStyle() — стиль (только иконка, иконка+текст и т.д.)
|
from PySide6.QtWidgets import QApplication, QToolButton, QWidget, QVBoxLayout
from PySide6.QtGui import QIcon
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QToolButton пример")
layout = QVBoxLayout()
tool_btn = QToolButton()
tool_btn.setText("Кнопка")
tool_btn.setIcon(QIcon("example.png"))
tool_btn.setToolButtonStyle(3) # Qt.ToolButtonTextUnderIcon
tool_btn.clicked.connect(lambda: print("Нажата кнопка"))
layout.addWidget(tool_btn)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
|
| QStatusBar |
Строка состояния в нижней части главного окна для отображения информации. |
showMessage() — показать текст на определенное время
addWidget() — добавить виджет
|
from PySide6.QtWidgets import QApplication, QMainWindow, QStatusBar
import sys
app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle("QStatusBar пример")
status = QStatusBar()
status.showMessage("Готово", 5000)
window.setStatusBar(status)
window.show()
sys.exit(app.exec())
|
| QMenuBar |
Меню верхнего уровня для главного окна. |
addMenu() — добавить меню
addAction() — добавить действие
|
from PySide6.QtWidgets import QApplication, QMainWindow, QMenuBar, QAction
import sys
app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle("QMenuBar пример")
menu_bar = QMenuBar()
file_menu = menu_bar.addMenu("Файл")
file_menu.addAction(QAction("Открыть", window))
file_menu.addAction(QAction("Выход", window))
window.setMenuBar(menu_bar)
window.show()
sys.exit(app.exec())
|
| QToolBar |
Панель инструментов для быстрого доступа к действиям. |
addAction() — добавить действие с кнопкой
addWidget() — добавить виджет на панель
|
from PySide6.QtWidgets import QApplication, QMainWindow, QToolBar, QAction
import sys
app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle("QToolBar пример")
toolbar = QToolBar()
toolbar.addAction(QAction("Действие 1", window))
toolbar.addAction(QAction("Действие 2", window))
window.addToolBar(toolbar)
window.show()
sys.exit(app.exec())
|