PyQt组件间的通信方式
- PyQt组件间的通信方式
- 1. 组件介绍
- 1.1 组件的定义
- 1.2 组件的分类
- 2. 组件的通信方式
- 2.1 信号与槽(Signal & Slot)
- 1. 组件介绍
1. 组件介绍
在 Qt 框架中,组件(Component)是构建图形用户界面(GUI)的核心元素
1.1 组件的定义
Qt 组件(又称控件或部件)指用户界面中所有可视化的交互元素,例如按钮、文本框、标签、窗口等12。这些组件通过继承 QWidget 类实现,并具备统一的属性、方法和事件处理机制
1.2 组件的分类
- 内置组件
- 基础交互组件:QPushButton(按钮)、QLineEdit(输入框)、QCheckBox(复选框)等。
- 布局容器:QGroupBox(组合框)、QTabWidget(标签页)等。
- 视图组件:QListView(列表视图)、QTreeView(树状视图)等
2. 组件的通信方式
- 信号与槽:最常用,支持跨组件和线程,自定义信号。
- 直接引用:适用于父子或已知结构的组件,通过.parent()或传递引用。
- 参数传递:初始化时传入数据或回调函数。
- 队列模块:线程间安全传递数据。
2.1 信号与槽(Signal & Slot)
- 组件内使用
button.clicked.connect(label.setText)
- 组件间通信
自定义信号:通过定义pyqtSignal
实现组件间自定义事件通信。
class CustomWidget(QWidget):
custom_signal = pyqtSignal(str) # 定义信号
def emit_data(self):
self.custom_signal.emit("Data") # 发射信号