PyQt事件例子

#coding=utf-8
'''
Created on 2013年12月14日

@author: hxp([email protected])
'''
import sys
from 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_())

你可能感兴趣的:(PyQt事件例子)