美文网首页程序员首页投稿(暂停使用,暂停投稿)pyQt5
PyQt5学习笔记(十四):发送信号&自定义槽函数

PyQt5学习笔记(十四):发送信号&自定义槽函数

作者: 链球选手 | 来源:发表于2016-06-05 20:59 被阅读5226次

在上一篇学习笔记中,我们重构了 ESC 和 ALT 键按下时触发的信号槽过程,在本次笔记中我们可以自己决定在什么时候发送一个信号。本文由 Cescfangs 译自 ZetCode pyqt5系列教程 并作适当修改。

在本次的学习笔记中,我们将通过信号槽的绑定,在statusBar()中提示哪一个按钮被按下了,先上源代码:

from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton


class exp(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.setGeometry(400, 400, 300, 300)
        self.setWindowTitle('sender')

        btn1 = QPushButton('Hello', self)
        btn2 = QPushButton('world', self)

        btn1.move(30, 150)
        btn2.move(150, 150)

        self.statusBar()

        btn1.clicked.connect(self.btnclicked)
        btn2.clicked.connect(self.btnclicked)

    def btnclicked(self):

        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was clicked!')

if __name__ == '__main__':

    import sys
    app = QApplication(sys.argv)
    ex = exp()
    ex.show()
    sys.exit(app.exec_())

通过以上的代码,我们创建了 'hello' 和 'world' 两个按钮,'hello' 按下的时候,左下角会提示 'hello was clicked!','world'按下的时候则提示 'world was clicked!'。

def btnclicked(self):    
    
    sender = self.sender()
    self.statusBar().showMessage(sender.text() + ' was clicked!')

自定义的槽函数 btnclicked,它的作用是设置 statusBar() 的内容为按钮文本+ 'was clicked!',这个函数通过:

btn1.clicked.connect(self.btnclicked)
btn2.clicked.connect(self.btnclicked)

进行连接呈现,发送的信号传送到槽函数时,我们可以使用 sender() 来判断是哪个部件发送了信号,从而做出对应的反馈,这也是自定义槽函数里经常使用的一个技巧。

动画效果

相关文章

  • PyQt5学习笔记(十四):发送信号&自定义槽函数

    在上一篇学习笔记中,我们重构了 ESC 和 ALT 键按下时触发的信号槽过程,在本次笔记中我们可以自己决定在什么时...

  • 2018-02-27:自定义PyQt5的槽函数

    目标:通过Python调用PyQt5的相关库函数,实现自定义槽函数并调用 运行结果为:

  • PyQt5 信号与槽

    PyQt5:PyQt5 信号与槽(PyQt5的事件处理机制) - 老π - 博客园 (cnblogs.com)[h...

  • Qt学习-2.信号与槽

    信号与槽 连接函数书写 ①③为对象指针,分别为发起者与接收者。④等待②的信号被发出 自定义槽 MainWindow...

  • 2019-02-18 信号和信号槽

    PyQt5:PyQt5 信号与槽(PyQt5的事件处理机制) 一、事件 在事件模型,有三个参与者:事件源、事件目标...

  • 信号与槽(SIGNAL-SLOT)

    一、系统设置槽-信号 在QtCreator中建立槽信号事件 设置槽事件 设置信号事件 二、自定义槽信号事件 设置对...

  • PyQT5信号槽

    官方文档: http://pyqt.sourceforge.net/Docs/PyQt5/signals_slot...

  • WebRTC信号和槽机制

    信号和槽的实现原理大致是这样的 : 信号对象持有连接,连接里记录了槽对象的地址和槽函数(某个成员函数)地址信号对象...

  • linux-10 -信号(2)+IPC

    信号:信号的发送函数/信号集和信号屏蔽/介绍一个sigaction()/信号应用的相关函数:sleep(),usl...

  • Qt自定义信号槽

    自定义信号槽 关于Q_OBJECT宏 只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必...

网友评论

    本文标题: PyQt5学习笔记(十四):发送信号&自定义槽函数

    本文链接:https://www.haomeiwen.com/subject/vierdttx.html