Рекомендуется скопировать код в IDE, например pycharm, чтобы увидеть реальный эффект и облегчить понимание❤️
PyQt5 да Python графический интерфейс пользователя (GUI) фреймворк, основанный на мощном Qt Библиотека. Qt даа кроссплатформенность из C++ Фреймворк для создания настольных приложений. проходить PyQt5, мы можем использовать Python Легко создавайте кроссплатформенные настольные приложения с поддержкой Windows、macOS и Linux。
Открыть PyCharm: Открытьтыиз PyCharm Редактор, убедитесь, что у вас уже есть проект, или создайте новый.
Установить PyQt5: ты можешь PyCharm В Установить используются два способа. PyQt5:
метод 1: Пройдено PyCharm изнастраивать Установить
метод 2: Пройдено PyCharm Терминал Установить
Открыть Terminal окно (в PyCharm Найдите опцию «Терминал» в нижней строке меню).
Введите следующую команду Установить PyQt5:
pip install PyQt5
Установить После завершения,PyCharm будет автоматически распознан и добавлен PyQt5 в проект.
Проверка установки прошла успешно: Вы можете сделать это, запустив в терминале pip list
Проверятьданет Установить Понятно PyQt5。
Далее мы создадим простое приложение PyQt5 в PyCharm, которое отображает окно, содержащее «Hello, World!»
main.py
。main.py
файл, введите следующий код:import sys # импортировать sys модуль для и Python взаимодействие переводчика
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow # от PyQt5 серединаимпортироватьнеобходимыйиздобрый
# создать класс главного окна, унаследованный от QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__() # Вызов родительского класса QMainWindow из Метод инициализации
self.setWindowTitle("Первое окно PyQt5") # Установить заголовок окна
# создать один QLabel ярлык и сделайте его главным окном централизованного управления.
label = QLabel("Hello, World!", self)
self.setCentralWidget(label) # Использовать метку в качестве элемента управления центром окна
# создать один PyQt5 приложениеобъект
app = QApplication(sys.argv)
# создаватьглавное окно Пример
window = MainWindow()
window.show() # окно дисплея
# Войдите в цикл событий приложения и продолжайте работу приложения, пока окно не закроется.
sys.exit(app.exec_())
import sys
sys
да Python встроенный модуль, обеспечивающий некоторые и Python Переводчик выполняет интерактивные функции. существовать PyQt5 середина,sys.exit()
Используется для обеспечения корректного завершения работы приложения при его закрытии, не оставляя фоновых процессов.from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow
QApplication
:каждый PyQt5 Программа должна иметь QApplication
Пример, который управляет потоком управления и настройками приложения.QMainWindow
:этотда PyQt5 вглавное окнодобрый,Это основа всех сложных окон. Может включать строку меню, панель инструментов、строка состояния、Центральное управление и т. д.QLabel
:этотдапростойизконтроль,Используется для отображения текста.class MainWindow(QMainWindow):
MainWindow
класс, унаследованный от QMainWindow
。проходитьнаследовать QMainWindow
,Мы можем настроить поведение и внешний вид окна.self.setWindowTitle("Первое окно PyQt5")
label = QLabel("Hello, World!", self)
QLabel
управление, отображение текста “Hello, World!”。self
параметр:Воля Этикеткасвязанный с текущим окном(MainWindow
),Прямо сейчас Воля Чтоустановлен в окне контроля детей.self.setCentralWidget(label)
label
Это центральный элемент управления окном, а центральный элемент управления заполняет среднюю область окна из элемента управления.app = QApplication(sys.argv)
QApplication
да PyQt5 основа приложения, каждый PyQt5 Приложения должны иметь QApplication
Пример, который управляет всем жизненным циклом приложения и обработкой событий.sys.argv
:Передать командную строкупараметр,Обычно можно игнорировать.window.show()
sys.exit(app.exec_())
app.exec_()
Начать приложение из цикла событий,Продолжать работу приложения,пока пользователь не закроет окно。sys.exit()
Убедитесь, что приложение завершает работу корректно.После запуска кода вы увидите сообщение, содержащее “Hello, World!” выскакивает окно.
pip list
Проверка команды да Нет Установить.window.show()
,Окно метода не будет отображаться без его вызова.существовать PyQt5 середина,окно(window)даприложениеизосновная часть。яихуже Понятноразвязать Понятнокаксоздать один Простойиз QMainWindow
,И существует, который показывает некоторое базовое содержание,Например текст Этикетка (QLabel
)。сейчассуществовать,яих Волядальше Понятноразвязать PyQt5 в Управление макетом,и научитесь рационально организовывать несколько элементов управления,Сделайте интерфейс более интерактивным и красивым.
QWidget
:да PyQt5 Базовый класс для всех элементов управления (например, кнопок, меток, текстовых полей и т. д.). По сути, любой визуальный элемент управления может наследовать от QWidget
。этотакжедабольшинство Базаизокноконтроль,Можно использовать просто для создания из окна.QMainWindow
:дастаршийокноконтроль,наследоватьс QWidget
,Но да, у него больше возможностей,Например, строка меню, Панель инструментов、строка состоянияждать。тымогу поставить QMainWindow
Понимается как «расширенное окно с большим количеством функций».существоватьразвивать GUI При проектировании решающее значение имеет то, как вы организуете элементы управления окнами и управляете ими. PyQt5 Обеспечивает несколько часто используемых из Управлений. Инструмент «макет» позволяет элементам управления автоматически регулировать их положение и размер. Общее из Управление Макет устройства:
Давайте создадим окно, содержащее несколько элементов управления, используя QVBoxLayout
и QHBoxLayout
организовать этот контроль.
Полный код:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLabel
# создать класс главного окна, унаследованный от QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQt5 макет Пример") # Установить заголовок окна
# создать главное окно в центральном элементе управления QMainWindow Необходимо настроить центральное управление
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
# создаватьвертикальный Управление макетомустройство vbox_layout = QVBoxLayout()
# создать контроль этикетки и добавить в макет
label = QLabel("Это метка")
vbox_layout.addWidget(label)
# создаватьуровень Управление макетомустройство hbox_layout = QHBoxLayout()
# создаем две кнопки и добавляем их в горизонтальный макет
button1 = QPushButton("Кнопка 1")
button2 = QPushButton("Кнопка 2")
hbox_layout.addWidget(button1)
hbox_layout.addWidget(button2)
# Добавление горизонтального макета к вертикальному макету
vbox_layout.addLayout(hbox_layout)
# Волямакетустановлен на Центральное управлениеизмкет
central_widget.setLayout(vbox_layout)
# создаватьприложениеобъект
app = QApplication(sys.argv)
# создаватьглавное окно
window = MainWindow()
window.show()
# Войдите в цикл событий приложения
sys.exit(app.exec_())
QWidget
и QMainWindow
: QMainWindow
В качестве главного окна необходимо настроить центральный элемент управления, поэтому мы создаем QWidget
Пример central_widget
。setCentralWidget()
метод используется для QWidget
установлен на QMainWindow
Из центрального элемента управления этот центральный элемент управления помещает все остальные элементы управления из контейнера.QVBoxLayout
даа вертикальное управление макетомустройство,контрольвстречаот Расположить сверху вниз。QHBoxLayout
даа уровень Управление макетомустройство,контрольвстречаот Расположить слева направо。vbox_layout.addWidget(label)
Воля Этикеткаконтрольдобавить в到вертикальныймакетсередина。hbox_layout.addWidget(button1)
и hbox_layout.addWidget(button2)
Добавьте элемент управления «Кнопка» в горизонтальный макет.vbox_layout.addLayout(hbox_layout)
,Встраиваем горизонтальный макет в вертикальный макет,Реализуйте более сложные структуры измакетов.QGridLayout
Позволяет расположить элементы управления в формате сетки, где каждый элемент управления можно разместить в указанной строке или столбце. Он подходит для использования с формами или матричными элементами управления.
Пример QGridLayout:
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QLabel, QPushButton
import sys
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QGridLayout Пример")
# создать одинсеткамакет
layout = QGridLayout()
# Добавляйте элементы управления в макет сетки для определенных строк и столбцов.
макет.addWidget(QLabel("Метка 1"), 0, 0) # существовать Нет. 0 ОК, нет. 0 Добавляйте метки к столбцам
layout.addWidget(QPushButton("Кнопка 1"), 0, 1) # существовать Нет. 0 ОК, нет. 1 Кнопка добавления столбца
макет.addWidget(QLabel("Метка 2"), 1, 0) # существовать Нет. 1 ОК, нет. 0 Добавляйте метки к столбцам
layout.addWidget(QPushButton("Кнопка 2"), 1, 1) # существовать Нет. 1 ОК, нет. 1 Кнопка добавления столбца
# Волямакетустановлен наокноизмакет self.setLayout(layout)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QGridLayout()
:создавать Понятноодинсеткамакетобъект。addWidget(widget, row, column)
:Воляконтрольдобавить в到指定из ХОРОШОи Списоксередина,например (0, 0)
Указывает, что элемент управления помещен в первую строку и первый столбец.
существуют в этой части,яих学习Понятнокаксуществовать PyQt5 Менеджеры макетов используются для организации элементов управления внутри окна. В основном мы представляем несколько распространенных методов компоновки:
проходитьиспользоватьэтотнекоторый Управление макетомустройство,Мы можем позволить элементу управления окном автоматически регулировать свое положение и размер.,Нет необходимости вручную рассчитывать координаты элемента управления.
Эта часть существования будет представлена более подробно позже.
существовать PyQt5 середина,Существует множество часто используемых элементов управления (также называемых виджетами).,Их можно использовать для реализации различных элементов пользовательского интерфейса.,Например, кнопки, текстовые поля, флажки и т. д. Следующий,Мы представим их один за другим,и покажите, как использовать эти элементы управления.
QLabel
да Элемент управления, используемый для отображения текста или изображений. Это один из простейших элементов управления, который часто используется для отображения статического текста.
Пример кода:
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow
from PyQt5.QtCore import Qt # импортировать Qt модуль
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QLabel Пример")
# создать метку и задать текст
label = QLabel("Это метка", self)
# Установить метку для выравнивания
label.setAlignment(Qt.AlignCenter)
# Установить метку в качестве центрального элемента управления
self.setCentralWidget(label)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QLabel
:используется для отображения текстаизконтроль。ты Можетнастраивать Этикеткаизсодержание、шрифт、Выравнивание и т. д.setAlignment(Qt.AlignCenter)
:Воля Этикеткаизтекстустановлен по центру выравнивания.self.setCentralWidget(label)
:Воля Этикеткаустановлен на Окноиз Центр управления。QPushButton
даA кнопка управления: пользователь может нажать кнопку для запуска событий. Это один из самых распространенных элементов управления.
Пример кода:
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QPushButton Пример")
# создаватькнопка button = QPushButton("Нажмитея", self)
# Установить кнопку Нажмите событие
button.clicked.connect(self.button_clicked)
# Кнопка перемещения включена. на Окноиз Центр управления
self.setCentralWidget(button)
# Событие из срабатывает, когда определена кнопка Нажмите.
def button_clicked(self):
print("Кнопка заблокирована нажатием!")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QPushButton
:создавать Понятноодинкнопкауправление,отображение текстадля“Нажмитея”。button.clicked.connect(self.button_clicked)
:соединятькнопкаиз Нажмитесигнал на заказиз button_clicked
метод. Этот метод будет запущен, когда кнопка будет нажата.self.button_clicked
:определение Понятноодинфункция слота,Используется в ответ на события кнопки Нажмите. существуют функции слота,Программа напечатает «Кнопка Нажмите!».
QLineEdit
даодинодин ХОРОШОтекстовое поле,Используется для разрешения пользовательского вводатекст。ты Может Получить пользовательский ввод из текстаи对Что进ХОРОШОиметь дело с。
Пример кода:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit Пример")
# создать текстовое поле
self.line_edit = QLineEdit(self)
# Установить текст подсказки по умолчанию
self.line_edit.setPlaceholderText("Пожалуйста, введите текст")
# Изменить установленное текстовое поле на Центральный контроль
self.setCentralWidget(self.line_edit)
# Подключите конец сигнала ввода текста к функции слота
self.line_edit.returnPressed.connect(self.return_pressed)
def return_pressed(self):
# Получить пользовательский ввод из текста
text = self.line_edit.text()
print(f"Пользовательский ввод: {text}")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QLineEdit
:создавать Понятноодинодин ХОРОШОтекстовое полеконтроль,Позволяет пользователю вводить текст.setPlaceholderText()
:настраиватьзаполнительтекст,Отображать текст подсказки, когда пользователь не вводит данные.self.line_edit.returnPressed.connect(self.return_pressed)
:Подключить пользовательский пресс“Введите ключ”часиз Сигнал поступает return_pressed
Функция слота: получите входной текст и распечатайте его.
QCheckBox
Если установлен флажок, пользователь может выбрать или отменить выбор опции. Он часто используется, чтобы позволить пользователям проверять определенные предпочтения или параметры.
Пример кода:
from PyQt5.QtWidgets import QApplication, QMainWindow, QCheckBox
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QCheckBox Пример")
# создать флажок
self.checkbox = QCheckBox("Согласен с условиями", self)
# Установить событие изменения состояния флажка
self.checkbox.stateChanged.connect(self.checkbox_changed)
# Переместить флажок установлен на Центральный контроль
self.setCentralWidget(self.checkbox)
def checkbox_changed(self, state):
if state == Qt.Checked:
print("Флажок установлен")
else:
print("Флажок не установлен")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QCheckBox
:создать один флажок,Отображаемый текст: «Согласен с условиями».self.checkbox.stateChanged.connect(self.checkbox_changed)
:соединятьфлажоксостояние Изменятьиз Сигнал поступаетфункция слота checkbox_changed
,Когда пользователь устанавливает или снимает флажок, будет вызвано соответствующее событие.checkbox_changed(self, state)
:в соответствии сфлажокизсостояние(Проверено или снято)Распечатать соответствующийизинформация。QComboBox
даодинвыпадающий списокконтроль,Пользователи могутотсерединавыбиратьвариант。
Пример кода:
from PyQt5.QtWidgets import QApplication, QMainWindow, QComboBox
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox Пример")
# создать раскрывающийся список
self.combobox = QComboBox(self)
# Добавить параметры
self.combobox.addItems(["опции 1", "параметры 2", "параметры 3"])
# Событие изменения опции раскрывающегося списка «Подключиться»
self.combobox.currentIndexChanged.connect(self.combobox_changed)
# Изменить раскрывающийся список установлен на Центральный контроль
self.setCentralWidget(self.combobox)
def combobox_changed(self, index):
# Получить текущий текст выделения
text = self.combobox.currentText()
print(f"В данный момент выбрано: {text}")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QComboBox
:создать одинвыпадающий списокконтроль,Пользователи могутотсерединавыбирать Параметры。self.combobox.addItems()
:Квыпадающий списоксередина Добавить параметры。currentIndexChanged.connect()
:соединятьвыпадающий список Параметры Изменятьиз Сигнал поступает combobox_changed
Функция слота: когда у пользователя есть разные варианты, выбранный текст будет напечатан.
существуют в этой части,Мы представили некоторые общие элементы управления в PyQt5.,Соответственно:
Эти элементы управления являются основными компонентами графического пользовательского интерфейса и делают приложение более интерактивным и работоспособным.
В частях 1–3 мы представили PyQt5 Базовые знания и некоторые часто используемые элементы управления. Сначала мы объяснили, как установить PyQt5 и создал простой PyQt5 приложение. Затем менеджеры макетов (например, QVBoxLayout и QHBoxLayout) и проводят организацию интерфейса в элементах управления. Наконец, мы погружаемся в PyQt5 vОбычно используемые элементы управления, такие как QLabel、QPushButton、QLineEdit и QCheckBox показывает, как использовать эти элементы управления для базового взаимодействия с пользователем.
Выше речь идет о [Python] Суперподробное руководство по PyQt5 — от новичка до мастера (прелюдия)изсодержание Ла,Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь задавать их в разделе комментариев.,Ваша поддержка — моя самая большая мотивация к творчеству! ❤️