#!/usr/bin/env python
#coding:utf-8
import sys
from PyQt4 import QtCore
from PyQt4.QtGui import *
app = QApplication(sys.argv)
okButton = QPushButton('OK')
closeButton = QPushButton('CLOSE')
layout = QHBoxLayout()
layout.addWidget(okButton)
layout.addWidget(closeButton)
widget = QWidget()
widget.setLayout(layout)
#下面两种方法都实现了信号传递的功能,相对于第一种,第二种更加pythonic.
#widget.connect(closeButton,QtCore.SIGNAL('clicked()'),qApp,QtCore.SLOT('quit()'))
closeButton.clicked.connect(widget.close)
widget.show()
app.exec_()
上面的方法实现的功能的是生成一个窗口,然后点击close按钮,会关闭窗口。下面的程序实现了同样的功能,但是是以面向对象的形式实现的。
#!/usr/bin/env python
#coding:utf-8
import sys
from PyQt4.QtGui import *
class Button(QWidget):
def __init__(self,parent = None):
QWidget.__init__(self)
self.creatButton()
#点击close退出窗体;self.close应该等价于myButton.colse
self.closeButton.clicked.connect(self.close)
def creatButton(self):
#这里的变量前面设置self,是为了在构建函数中能够调用
#所以,如果有变量需要在构建函数中调用,那么方法里面的变量需要加self
self.okButton = QPushButton('OK')
self.closeButton = QPushButton('CLOSE')
layout = QHBoxLayout()
layout.addWidget(self.okButton)
layout.addWidget(self.closeButton)
self.setLayout(layout)
app = QApplication(sys.argv)
myButton = Button()
myButton.show()
app.exec_()