主要机制
一、通过Qt designer设置窗口布局
将文件界面.ui 文件转换为.py 文件

二、核心机制
信号与槽机制是Qt的核心机制。在创建时间循环之后,通过建立信号和槽的连接可以实现对象之间的通信。当信号发射时,连接的槽函数会自动执行。在PyQt 5中,信号和槽通过QObject.signal.connect()连接。
所有从 QObject类或其子类(如QWidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射出去。槽用于接收信号,但它们是普通的对象成员函数。多个信号可以与单个槽进行连接,单个信号也可以与多个槽进行连接。总之,信号和槽构建了一种强大的控件编程机制。
在Qt编程中,通过Qt信号槽机制对鼠标或键盘在界面上的操作进行响应处理,例如对鼠标单击按钮的处理。Qt中的控件能够发射什么信号,以及在什么情况下发射信号,在Qt的文档中有说明,不同的控件能够发射的信号种类和触发时机也是不同的。
那么如何为控件发射的信号指定对应的处理槽函数呢?
一般有三种方法,第一种是在窗口的UI设计中操作添加信号和槽;第二种是通过代码连接信号和槽;第三种是通过Eric 的“生成对话框代码”的功能产生信号和槽。
PyQt的窗口控件中有很多内置信号,开发者也可以添加自定义的信号。
信号与槽具有如下特点:
- 一个信号可以连接多个槽。
- 一个信号可以连接另一个信号。
- 信号参数可以是任何Python类型。
- 一个槽可以监听多个信号。
- 信号与槽的连接方式可以是同步连接,也可以是异步连接。·信号与槽的连接可能会跨线程。
- 信号可能会断开。
在GUI编程中,当改变一个控件的状态时(如单击了按钮),通常需要通知另一个控件,也就是实现了对象之间的通信。在早期的GUI编程中使用的是回调机制,在Qt中则使用一种新机制---信号与槽。在编写一个类时,要先定义该类的信号与槽,在类中信号与槽进行连接,实现对象之间的数据传输。

浙公网安备 33010602011771号