2
Пример создания пользовательского сигнала с использованием класса Signal
3
из модуля PySide6.QtCore.
7
from PySide6.QtCore import Signal
8
from PySide6.QtWidgets import QApplication, QMainWindow
11
Модуль sys нужен для доступа к аргументам командной строки. Если использование аргументов
12
командной строки не предполагается, то импорт можно не выполнять. При этом, при создании
13
приложения в класс QApplication([]) в качестве аргумента передается пустой список.
14
Импорт из модуля PySide6.QtWidgets класса для управления приложением QApplication и
15
класса основного окна QMainWindow.
16
Импорт из модуля PySide6.QtCore класса сигнала Signal.
20
class MainWindow(QMainWindow):
22
Класс главного окна приложения от супер класса главных окон
25
value = Signal(int, str, int)
27
another = Signal(list)
28
onemore = Signal(dict)
29
anything = Signal(object)
33
Конструктор главного окна приложения
35
QMainWindow.__init__(self)
36
self.message.connect(self.custom_slot)
38
self.value.connect(self.custom_slot)
39
self.another.connect(self.custom_slot)
40
self.onemore.connect(self.custom_slot)
41
self.anything.connect(self.custom_slot)
42
self.message.emit('my message')
43
self.value.emit(23, 'abc', 1)
44
self.another.emit([1, 2, 3, 4, 5])
45
self.onemore.emit({'a': 2, 'b': 7})
46
self.anything.emit(1223)
48
def custom_slot(self, *args: object) -> None:
50
Метод ресивер (слот) для приема данных сигнала
51
:param args: object - любой объект
59
Функция запуска кода верхнего уровня приложения
62
app = QApplication(sys.argv)
68
if __name__ == '__main__':