Статья [Python] - #2 Добавление виджетов на PyQt5

Muxtar

Green Team
02.06.2021
132
65
BIT
0

Виджеты в PyQt5

Виджеты - это основные строительные блоки приложения. PyQt5 имеет широкий ряд различных виджетов, включая кнопки, флажки, ползунки или списки. В этом статье мы опишем несколько полезных виджетов: QPushButton и QLabel

QLabel и QPushButton

Давайте узнаем, что эти за виджеты:
  • QLabel - Создает текст, в вашем окне
  • QPushButton - Создает обычную кнопку, вашем окне.

Создаем программу


Вы узнали что это за виджеты, а теперь давайте напишем эту код на пайтон, и добавим эти 2 виджета:
Примечание: Напоминаю, что перед началом кода, у вас должны быть знание о ООП, хотя бы половину. [ВСЕ ПОДРОБНОСТИ ЗДЕСЬ - ]

Так давайте приступимся к работе, вы создаете простой файл с форматом [py] и пишем вот такой код:
Подключаем Библиотеки:

Python:
from Pyqt5 import QtCore, QtWidgets
Мы подключили необходимы библиотеки для работы PyQt5.

Создаем родительский класс и конструктор:
Python:
class MyWindow(QtWidgets.QtWidget):
    def __init__(self, parent=None):
    QtWidgets.QWidget.__init__(self, parent)
Класс MyWindow наследуют на QtWidgets тоесть ранее которые мы подключали библиотеку. MyWindow является родительский и главный класс.

Добавляемс виджеты и событии:

Я тут подумал, что наша кнопка не будет обычной кнопкой <3, а при нажатии на него закроется данное окно, тоесть событие:

Python:
self.my_text = QtWidgets.QLabel("Привет codeby!") # Текст

self.lmy_text.setAlignment(QtCore.Qt.AlignHCenter) # Центр текста

self.my_btn = QtWidgets.QPushButton("Закрыть окно") # Кнопка
Тоесть мы создали 2 виджет это - QLabel и QPushButton, в QLabel'e мы добавили AlignHCenter который наследуются на QtCore, он позволяет делать текст в центре окна.


Добавляем компоненты в контейнер:


Python:
self.vbox = QtWidgets.QVBoxLayout()

self.vbox.addWidget(self.my_btn)

self.vbox.addWidget(self.my_text)

self.setLayout(self.vbox)

self.my_btn.clicked.connect(QtWidgets.qApp.quit)
Данный код, создает объект надписи и кнопки(который мы ранее объявляли) и контейнер, затем добавляют компоненты в контейнер а сам контейнер - в основное окно.
Потом мы для кнопки, объявили функцию, который при нажатии завершается окно, с помощью clicked.connect(QtWidgets.qApp.quit)

Настраиваем окно, размер заголовок:

Python:
if __name__ == "__main__":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()[

window.setWindowTitle('My window!')

window.resize(300, 70)

window.show()

sys.exit(app.exec_())

Для окно, мы дали заголовок "My Window" и дали ему размер. Дальше мы создали экземпляр класса Window = MyWindow() и с помощью window.show() показываем сам окно. Выражение sys.exit(app.exec_()) позволяет выйти с окна(<3).


Скомпилируем код:

Python:
from PyQt5 import QtCore, QtWidgets

class MyWindow(QtWidgets.QtWidget):
    def __init__(self, paret=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.my_text = QtWidgets.QLabel('Привет codeby!')
        self.my_text.setAlignment(QtCore.Qt.AlignCenter)
        self.my_btn = QtWidgets.QPushButton('Закрыть окно')
        self.vbox = QtWidgets.QVboxLayout()
        self.vbox.addWidget(self.my_text)
        self.vbox.addWidget(self.my_btn)
        self.setLayout(self.vbox)
        self.my_btn.clicked.connect(QtWidgets.qApp.quit)

if __name__ == '__maim__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.setWindowTitle('My Window!')
    window.resize(300, 70)
    window.show()
    sys.exit(app.exec_())

Итоги:

Снимок экрана от 2021-06-07 12-14-07.png

Создание виджетов на PyQt5


Код получился конечно не такой большой, но мы смогли создать 2 виджета, это текст и кнопка.Надеюсь, данная статься была полезна для вас. Удачи!
[Буду благодарен, если найдете ошибки в тексте или в коде.]
 
Последнее редактирование:
  • Нравится
Реакции: Сатана
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!