Pyqt5:信号与槽(一)

举报
何其不顾四月天 发表于 2020/12/29 00:13:56 2020/12/29
【摘要】 信号与槽是Qt特有的机制。 pyqt5的信号与槽官方地址:信号与槽 UI界面如下: 思路: 按下对应按键显示对应信号文字。 主要说自定义信号,qt控件自带信号就不说了。 信号定义需要调用库: QObejcet,pyqtSignal from PyQt5.QtCore import QObject, pyqtSignal12 类内部信号与槽: Cla...

信号与槽是Qt特有的机制。
pyqt5的信号与槽官方地址:信号与槽
UI界面如下:
UI界面
思路:
按下对应按键显示对应信号文字。
主要说自定义信号,qt控件自带信号就不说了。
信号定义需要调用库:

QObejcet,pyqtSignal
from PyQt5.QtCore import QObject, pyqtSignal
  
 
  • 1
  • 2

类内部信号与槽:

Class_signal = pyqtSignal(str)
  
 
  • 1

槽:

 def Class_signal_print(self,singnal_str): self.textBrowser.setText(singnal_str)
  
 
  • 1
  • 2

信号发送:

 def pushbutton_clicked(self): self.Class_signal.emit("类内部信号")
  
 
  • 1
  • 2

信号与槽连接:

self.Class_signal.connect(self.Class_signal_print)
  
 
  • 1

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

class m_signal(QObject): Class_signal_other = pyqtSignal(str) def signal_emit(self): self.Class_signal_other.emit("类之间信号")
  
 
  • 1
  • 2
  • 3
  • 4

信号定义:

Class_signal_other = pyqtSignal(str)
  
 
  • 1

信号发送:

self.M_signal = m_signal()
def pushbutton_2_clicked(self): self.M_signal.signal_emit()
  
 
  • 1
  • 2
  • 3
 def signal_emit(self): self.Class_signal_other.emit("类之间信号")
  
 
  • 1
  • 2

槽函数:

 def Class_signal_other_print(self,singnal_str): self.textBrowser.setText(singnal_str)
  
 
  • 1
  • 2

信号与槽连接:

self.M_signal.Class_signal_other.connect(self.Class_signal_other_print)
  
 
  • 1

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

Class_signature = pyqtSignal([str],[int])
  
 
  • 1

信号的发送:

 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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

槽函数:

 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)))
  
 
  • 1
  • 2
  • 3
  • 4
  • 5

信号与槽的连接:

 self.Class_signature[str].connect(self.Class_signature_1_print) self.Class_signature[int].connect(self.Class_signature_2_print)
  
 
  • 1
  • 2
  • 3

源代码:
源代码

文章来源: blog.csdn.net,作者:何其不顾四月天,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/u011218356/article/details/80978092

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。