主要机制

一、通过Qt designer设置窗口布局

  将文件界面.ui 文件转换为.py 文件

 

 

二、核心机制

  信号与槽机制是Qt的核心机制。在创建时间循环之后,通过建立信号和槽的连接可以实现对象之间的通信。当信号发射时,连接的槽函数会自动执行。在PyQt 5中,信号和槽通过QObject.signal.connect()连接。

 

  所有从 QObject类或其子类(如QWidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射出去。槽用于接收信号,但它们是普通的对象成员函数。多个信号可以与单个槽进行连接,单个信号也可以与多个槽进行连接。总之,信号和槽构建了一种强大的控件编程机制。

  在Qt编程中,通过Qt信号槽机制对鼠标或键盘在界面上的操作进行响应处理,例如对鼠标单击按钮的处理。Qt中的控件能够发射什么信号,以及在什么情况下发射信号,在Qt的文档中有说明,不同的控件能够发射的信号种类和触发时机也是不同的。

  那么如何为控件发射的信号指定对应的处理槽函数呢?

  一般有三种方法,第一种是在窗口的UI设计中操作添加信号和槽;第二种是通过代码连接信号和槽;第三种是通过Eric 的“生成对话框代码”的功能产生信号和槽。

PyQt的窗口控件中有很多内置信号,开发者也可以添加自定义的信号。

信号与槽具有如下特点:

  •  一个信号可以连接多个槽。
  •  一个信号可以连接另一个信号。
  •  信号参数可以是任何Python类型。
  •  一个槽可以监听多个信号。
  •  信号与槽的连接方式可以是同步连接,也可以是异步连接。·信号与槽的连接可能会跨线程。
  •  信号可能会断开。

  在GUI编程中,当改变一个控件的状态时(如单击了按钮),通常需要通知另一个控件,也就是实现了对象之间的通信。在早期的GUI编程中使用的是回调机制,在Qt中则使用一种新机制---信号与槽。在编写一个类时,要先定义该类的信号与槽,在类中信号与槽进行连接,实现对象之间的数据传输。

posted @ 2022-03-31 21:11  nanaa  阅读(12)  评论(0编辑  收藏  举报