前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pyqt5:信号与槽(一)

Pyqt5:信号与槽(一)

作者头像
何其不顾四月天
发布2023-03-10 13:40:27
2150
发布2023-03-10 13:40:27
举报
文章被收录于专栏:四月天的专栏四月天的专栏

信号与槽是Qt特有的机制。 pyqt5的信号与槽官方地址:信号与槽 UI界面如下:

UI界面
UI界面

思路: 按下对应按键显示对应信号文字。 主要说自定义信号,qt控件自带信号就不说了。 信号定义需要调用库:

代码语言:javascript
复制
QObejcet,pyqtSignal
from PyQt5.QtCore import QObject, pyqtSignal

类内部信号与槽:

代码语言:javascript
复制
Class_signal = pyqtSignal(str)

槽:

代码语言:javascript
复制
    def Class_signal_print(self,singnal_str):
        self.textBrowser.setText(singnal_str)

信号发送:

代码语言:javascript
复制
    def pushbutton_clicked(self):
        self.Class_signal.emit("类内部信号")

信号与槽连接:

代码语言:javascript
复制
self.Class_signal.connect(self.Class_signal_print)

类之间信号调用: 类定义:

代码语言:javascript
复制
class m_signal(QObject):
    Class_signal_other = pyqtSignal(str)
    def signal_emit(self):
        self.Class_signal_other.emit("类之间信号")

信号定义:

代码语言:javascript
复制
Class_signal_other = pyqtSignal(str)

信号发送:

代码语言:javascript
复制
self.M_signal = m_signal()
def pushbutton_2_clicked(self):
    self.M_signal.signal_emit()
代码语言:javascript
复制
        def signal_emit(self):
        self.Class_signal_other.emit("类之间信号")

槽函数:

代码语言:javascript
复制
    def Class_signal_other_print(self,singnal_str):
        self.textBrowser.setText(singnal_str)

信号与槽连接:

代码语言:javascript
复制
self.M_signal.Class_signal_other.connect(self.Class_signal_other_print)

信号的多态: 信号的定义:

代码语言:javascript
复制
Class_signature = pyqtSignal([str],[int])

信号的发送:

代码语言:javascript
复制
    def Class_signature_1_print(self,singnal_str):
        self.textBrowser.setText(singnal_str+":"+str(type(singnal_str)))

    def pushButton_4_clicked(self):     
        self.Class_signature[int].emit(156277)

槽函数:

代码语言:javascript
复制
    def Class_signature_1_print(self,singnal_str):
        self.textBrowser.setText(singnal_str+":"+str(type(singnal_str)))

    def Class_signature_2_print(self,singnal_int):
        self.textBrowser.setText("信号_2 "+":"+str(singnal_int)+":"+str(type(singnal_int)))

信号与槽的连接:

代码语言:javascript
复制
        self.Class_signature[str].connect(self.Class_signature_1_print)

        self.Class_signature[int].connect(self.Class_signature_2_print)

源代码: 源代码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档