Программирование графического интерфейса PySide6 (2): настройки окна и основные элементы управления.
Программирование графического интерфейса PySide6 (2): настройки окна и основные элементы управления.

Пользовательское окно

пример кода

Язык кода:python
кодКоличество запусков:0
копировать
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 все функции и свойства.

Язык кода:python
кодКоличество запусков:0
копировать
    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 пикселей. Это не позволит пользователю изменить размер окна, и размер окна будет привязан к указанным размерам.

конечный операционный эффект

Эффект операции
Эффект операции

Основные элементы управления

QPushButton

Способ написания первый

Язык кода:python
кодКоличество запусков:0
копировать
from PySide6.QtWidgets import QApplication, QPushButton

app = QApplication([])

window = QPushButton("Push Me Это кнопка")
window.setToolTip('Tip Info Сообщение для этой кнопки')
window.show()
app.exec()
Эффект кнопки
Эффект кнопки

Способ написания второй

Язык кода:python
кодКоличество запусков:0
копировать
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 окно.
  • Управление памятью: в Qt,когдародительский объекткогда разрушен,все этоподобъекттакже будет автоматически уничтожено。добавив self какродительский объектперешел к QPushButton,Обеспечено правильное управление кнопками,икогда MyPushButton Когда окно уничтожается, кнопка также уничтожается.
  • обработка событий:Контроль детейОбычно событие(Например, щелчок мышью、Ввод с клавиатуры и т. д.)перешел к它们изродительский объект。Указав self какродительский объект,Кнопка может передать событиеперешел к MyPushButton Экземпляр класса, который позволяет обрабатывать эти события внутри класса.
  • Управление макетом: в Qt,Схема управлениядана основеотношения отца и сынаУправлять。обозначение self какродительский объектЭто гарантирует, что кнопка будет правильно размещена в окне.,И вы можете использовать менеджер макетов для автоматической настройки положения и размера кнопок.
  • рисование и фокус:родительский объектОтветственный за его составлениеподобъект,Стратегия фокусировки также зависит ототношения отца и сыначтобы определить порядок фокусировки。 Поэтому в MyPushButton Создать класс QPushButton экземпляр и при добавлении его в окно передайте self Поскольку родительский объект да имеет решающее значение, он гарантирует правильную работу кнопки и ее интеграцию в окно. Если не прошел родительский объект,QPushButton Вы не сможете правильно взаимодействовать с окном и пользоваться различными возможностями, предоставляемыми инфраструктурой Qt.

QLabel

Способ написания первый

Язык кода:python
кодКоличество запусков:0
копировать
from PySide6.QtWidgets import QApplication, QLabel

app = QApplication([])
label = QLabel('Label Text Это лейбл')
label.setToolTip('Tip Info Подскажите сообщение для этого тега да')
label.show()

app.exec()
Эффект операции
Эффект операции

Способ написания второй

Язык кода:python
кодКоличество запусков:0
копировать
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()
Эффект операции
Эффект операции

QLineEdit

Способ написания первый

Язык кода:python
кодКоличество запусков:0
копировать
from PySide6.QtWidgets import QApplication, QLineEdit
app = QApplication([])
window = QLineEdit()
window.setWindowTitle('LineEdit поле ввода')
window.setPlaceholderText('Пожалуйста, введите содержимое')
window.show()
app.exec()
Эффект операции
Эффект операции

Способ написания второй

Язык кода:python
кодКоличество запусков:0
копировать
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()
Эффект операции
Эффект операции
На что следует обратить внимание при настройке заголовка для QLineEdit

Для следующего кода:

Язык кода:python
кодКоличество запусков:0
копировать
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 Это оконный элемент управления верхнего уровня с заголовком окна и полным оформлением окна.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода