from PySide6.QtCore import QSize
from PySide6.QtWidgets import QApplication, QMainWindow
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('My App Window мой Пользовательское окно')
self.setToolTip('My App Tip Info этотдамой Пользовательское подсказка окна')
# Установить фиксированный размер окна, длинный 400, широкий 300
self.setFixedSize(QSize(400, 300))
if __name__ == '__main__':
app = QApplication([])
window = MyMainWindow()
window.show()
app.exec()
Среди приведенного выше кода,class MyMainWindow(QMainWindow):
определяет файл с именем MyMainWindow
класс, который наследуется от QMainWindow
добрый。QMainWindow
— это класс в среде Qt, используемый для создания главного окна и управления им, что означает MyMainWindow
в классе будет QMainWindow
все функции и свойства.
def __init__(self):
super().__init__()
Эта строка кода вызывает родительский класс QMainWindow
Конструктор,заверил родительдобрыйправильно инициализирован。super()
Функции используются для доступа к методам и свойствам родительского класса.
Установить заголовок окна:self.setWindowTitle('My App Window мой Пользовательское окно')
,Этот заголовок появится в строке заголовка окна.
Установить информацию всплывающей подсказки для окон:self.setToolTip('My App Tip Info этотдамой Пользовательское подсказка окна')
,Когда пользователь наводит курсор на окно,Это сообщение появится в виде небольшого всплывающего окна.
Установить фиксированный размер окна:self.setFixedSize(QSize(400, 300))
,использовать setFixedSize Способ установки фиксированного размера окна, параметры QSize(400, 300) Ширина окна указана как 400 пикселей, а высота — 300 пикселей. Это не позволит пользователю изменить размер окна, и размер окна будет привязан к указанным размерам.
from PySide6.QtWidgets import QApplication, QPushButton
app = QApplication([])
window = QPushButton("Push Me Это кнопка")
window.setToolTip('Tip Info Сообщение для этой кнопки')
window.show()
app.exec()
class MyPushButton(QMainWindow):
def __init__(self):
super().__init__()
QPushButton('Пользовательский QPushButton', self).setToolTip('Мой собственный button Пример')
if __name__ == '__main__':
app = QApplication()
button = MyPushButton()
button.show()
app.exec()
QPushButton
в конструкторе self
Параметры необходимы по следующим причинам:
self
да MyPushButton
добрыйизссылка на экземпляр
,передать это QPushButton
означает, что создается дочерний элемент управления (кнопка), принадлежащий MyPushButton
окно.родительский объект
когда разрушен,все этоподобъект
также будет автоматически уничтожено。добавив self
какродительский объект
перешел к QPushButton
,Обеспечено правильное управление кнопками,икогда MyPushButton
Когда окно уничтожается, кнопка также уничтожается.Контроль детей
Обычно событие(Например, щелчок мышью、Ввод с клавиатуры и т. д.)перешел к它们изродительский объект
。Указав self
какродительский объект
,Кнопка может передать событиеперешел к MyPushButton
Экземпляр класса, который позволяет обрабатывать эти события внутри класса.отношения отца и сына
Управлять。обозначение self какродительский объект
Это гарантирует, что кнопка будет правильно размещена в окне.,И вы можете использовать менеджер макетов для автоматической настройки положения и размера кнопок.родительский объект
Ответственный за его составлениеподобъект
,Стратегия фокусировки также зависит ототношения отца и сына
чтобы определить порядок фокусировки。
Поэтому в MyPushButton
Создать класс QPushButton
экземпляр и при добавлении его в окно передайте self
Поскольку родительский объект да имеет решающее значение, он гарантирует правильную работу кнопки и ее интеграцию в окно.
Если не прошел родительский объект,QPushButton
Вы не сможете правильно взаимодействовать с окном и пользоваться различными возможностями, предоставляемыми инфраструктурой Qt.from PySide6.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Label Text Это лейбл')
label.setToolTip('Tip Info Подскажите сообщение для этого тега да')
label.show()
app.exec()
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow
class MyLabel(QMainWindow):
def __init__(self):
super().__init__()
QLabel('MyLabel', self).setToolTip('Мой собственный label Пример')
if __name__ == '__main__':
app = QApplication()
button = MyLabel()
button.show()
app.exec()
from PySide6.QtWidgets import QApplication, QLineEdit
app = QApplication([])
window = QLineEdit()
window.setWindowTitle('LineEdit поле ввода')
window.setPlaceholderText('Пожалуйста, введите содержимое')
window.show()
app.exec()
from PySide6.QtWidgets import QApplication, QLineEdit, QMainWindow
class MyLineEdit(QMainWindow):
def __init__(self):
super().__init__()
ins = QLineEdit(self)
ins.setPlaceholderText('Пожалуйста, введите содержимое')
if __name__ == '__main__':
app = QApplication()
line_edit = MyLineEdit()
line_edit.setWindowTitle('QLineEdit поле ввода')
line_edit.show()
app.exec()
Для следующего кода:
from PySide6.QtWidgets import QApplication, QLineEdit, QMainWindow
class MyLineEdit(QMainWindow):
def __init__(self):
super().__init__()
ins = QLineEdit(self)
ins.setPlaceholderText('Пожалуйста, введите содержимое')
# Название здесь не вступит в силу! ! !
ins.setWindowTitle('QLineEdit поле ввода')
if __name__ == '__main__':
app = QApplication()
line_edit = MyLineEdit()
# line_edit.setWindowTitle('QLineEdit поле ввода')
line_edit.show()
app.exec()
существоватьPySide6
(а такжеQt-фреймворк
середина),QLineEdit
да Элемент управления редактированием строки для ввода текста,У него нет возможности отображать сам заголовок окна. 。существоватьQtсередина,Заголовок окна обычно такой же, как QMainWindow
или QWidget
Что касается классов, то они представляют собой элементы управления окнами, которые могут обеспечить полное оформление окна (например, строку заголовка, границу, строку состояния и т. д.).
Если вы хотите, чтобы заголовок отображался, вам нужно установить его в главном окне, то есть MyLineEdit
сам класс, потому что QMainWindow
Это оконный элемент управления верхнего уровня с заголовком окна и полным оформлением окна.