• 🚨 24 часа до повышения цены на курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    Последний день записи в текущий поток по старой цене Подробнее о курсе ...

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

Виджеты в 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 виджета, это текст и кнопка.Надеюсь, данная статься была полезна для вас. Удачи!
[Буду благодарен, если найдете ошибки в тексте или в коде.]
 
Последнее редактирование:
  • Нравится
Реакции: Сатана
Привет. Как по мне — не очень смотрится форматирование «по середине»
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD