• Event sender


    Sometimes it is convenient to know which widget is the sender of a signal. For this, PyQt4 has thesender() method.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    In this example, we determine the event sender
    object.
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: October 2011
    """
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    
    class Example(QtGui.QMainWindow):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):      
    
            btn1 = QtGui.QPushButton("Button 1", self)
            btn1.move(30, 50)
    
            btn2 = QtGui.QPushButton("Button 2", self)
            btn2.move(150, 50)
          
            btn1.clicked.connect(self.buttonClicked)            
            btn2.clicked.connect(self.buttonClicked)
            
            self.statusBar()
            
            self.setGeometry(300, 300, 290, 150)
            self.setWindowTitle('Event sender')
            self.show()
            
        def buttonClicked(self):
          
            sender = self.sender()
            self.statusBar().showMessage(sender.text() + ' was pressed')
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
    

    We have two buttons in our example. In the buttonClicked() method we determine which button we have clicked by calling the sender() method.

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

    Both buttons are connected to the same slot.

    def buttonClicked(self):
      
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')
    

    We determine the signal source by calling the sender() method. In the statusbar of the application, we show the label of the button being pressed.

    Event senderFigure: Event sender

  • 相关阅读:
    rxjs 学习实践笔记
    封装localStorage、sessionStorage设置,获取,移除方法
    Angular实现类似vuex状态管理功能、全局数据管理与同步更新
    关于RxJS 处理多个Http请求 串行与并行方法
    vue插件汇总
    vue使用videojs控制后台m3u8数据请求
    NPOI winform读取Excel
    //邮件发送:
    定时任务框架Quartz.net
    系统日志控件 Log4NET
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4435564.html
Copyright © 2020-2023  润新知