首页 > 其他 > 详细

Event sender

时间:2015-04-17 20:00:18      阅读:151      评论:0      收藏:0      [点我收藏+]

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.

技术分享Figure: Event sender

Event sender

原文:http://www.cnblogs.com/hushaojun/p/4435564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!