PyQt事件例子

来源:互联网 发布:安徽易众网络工作 编辑:程序博客网 时间:2024/06/05 15:46
#coding=utf-8'''Created on 2013年12月14日@author: hxp(hxpwangyi@163.com)'''import sysfrom PyQt4 import QtGui,QtCore class SignalFrame(QtGui.QWidget):    '''    classdocs    '''    def __init__(self):        '''        Constructor        '''        super(SignalFrame,self).__init__()                lcd=QtGui.QLCDNumber(self)        slider=QtGui.QSlider(QtCore.Qt.Horizontal,self)        vbox=QtGui.QVBoxLayout()        vbox.addWidget(lcd)        vbox.addWidget(slider)        self.setLayout(vbox)                self.connect(slider, QtCore.SIGNAL('valueChanged(int)'),lcd,QtCore.SLOT('display(int)'))                button1 = QtGui.QPushButton("Button 1", self)        button1.move(30, 50)        button2 = QtGui.QPushButton("Button 2", self)        button2.move(150, 50)        self.connect(button1, QtCore.SIGNAL('clicked()'),            self.buttonClicked)        self.connect(button2, QtCore.SIGNAL('clicked()'),            self.buttonClicked)                self.move(100,100)        self.resize(500,500)                self.connect(self, QtCore.SIGNAL('closeEmitApp()'),            QtCore.SLOT('close()'))    def keyPressEvent(self, event):        if event.key() == QtCore.Qt.Key_Escape:            self.close()        def mousePressEvent(self, event):        self.emit(QtCore.SIGNAL('closeEmitApp()'))        def buttonClicked(self):        sender=self.sender();        print sender.text()        if __name__=="__main__":    app=QtGui.QApplication(sys.argv)    frame=SignalFrame()    frame.show()    sys.exit(app.exec_())

0 0