PySide6

Форк
0
/
3_signals_additional_data.py 
57 строк · 3.7 Кб
1
"""
2
Пример подмешивания дополнительных пользовательских данных к встроенным в виджеты сигналам.
3
"""
4
import sys
5

6
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
7

8
"""
9
Модуль sys нужен для доступа к аргументам командной строки. Если использование аргументов
10
командной строки не предполагается, то импорт можно не выполнять. При этом, при создании
11
приложения в класс QApplication([]) в качестве аргумента передается пустой список.
12
Импорт из модуля PySide6.QtWidgets класса для управления приложением QApplication и
13
класса основного окна QMainWindow, класса нажимаемой кнопки QPushButton.
14
"""
15

16

17
class MainWindow(QMainWindow):
18
    """
19
    Класс главного окна приложения от супер класса главных окон
20
    """
21
    def __init__(self):
22
        """
23
        Конструктор главного окна приложения
24
        """
25
        QMainWindow.__init__(self)  # явный вызов конструктора родительского класса
26
        btn = QPushButton('Press me')  # создание экземпляра класса нажимаемой кнопки
27
        btn.setCheckable(True)  # настройка кнопки на фиксацию положения (режим переключателя)
28
        btn.clicked.connect(lambda checked: self.button_clicked(checked, btn))  # создание сигнала на нажатие кнопки
29
        # с привязкой ресивера через анонимную функцию с передачей в него состояния кнопки и самого объекта кнопки
30
        self.setCentralWidget(btn)  # размещение в главном окне виджета кнопки
31

32
    def button_clicked(self, checked: bool, btn: QPushButton) -> None:
33
        """
34
        Метод ресивер (слот) сигнала на нажатие кнопки
35
        :param checked: bool - состояние кнопки, передаваемое сигналом
36
        :param btn: QPushButton - объект, передаваемый вместе с сигналом
37
                                  (подмешанные пользовательские данные)
38
        :return: None
39
        """
40
        print(btn, checked)
41
        btn.hide()  # метода, вызов которого прячет кнопку
42

43

44
def main() -> None:
45
    """
46
    Функция запуска кода верхнего уровня приложения
47
    :return: None
48
    """
49
    app = QApplication(sys.argv)  # создание экземпляра класса основного цикла главного окна приложения
50
    window = MainWindow()  # создание экземпляра класса главного окна приложения
51
    window.show()  # вызов метода главного окна, разрешающего его показ (по умолчанию окно скрыто)
52
    app.exec()  # запуска основного цикла главного окна приложения
53

54

55
if __name__ == '__main__':  # данная конструкция предотвращает запуск кода верхнего уровня
56
    # при импортировании данного файла как модуля
57
    main()
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.