クラス方式で機能を実現する

1470 ワード

#!/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_()