zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JSP中文乱码
    Java Enum 浅析
    详解 Tomcat: The value for the useBean class attribute is invalid
    PHP+ACCESS 实例
    MySQL limit实际用法的详细解析
    JSP获取当前时间
    sql where 1=1和 0=1 的作用
    利用Quartus设计4位同步二进制加法计数器
    JSP各种路径的获取
    JSP连接MYSQL数据库
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4435564.html
Copyright © 2011-2022 走看看