2011-01-29 10 views
1

私は音楽を開始および停止する必要がある2つのボタンを保持するこの小さなメディアアプリを持っています。イベントを関数に接続する方法は?

class AppWindow(QtGui.QWidget): 

    def mediastart(): 
     os.system("...") 

    def mediastop(): 
     os.system("...") 

    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 

     self.setGeometry(300, 300, 800, 480) 
     self.setWindowTitle("EasySteerQT") 

     start = QtGui.QPushButton("Start", self) 
     start.setGeometry(50, 50, 60, 35) 

     stop = QtGui.QPushButton("Stop", self) 
     stop.setGeometry(100, 50, 60, 35) 

     quit = QtGui.QPushButton('Close', self) 
     quit.setGeometry(10, 10, 60, 35) 

     self.connect(quit, QtCore.SIGNAL("clicked()"), 
      QtGui.qApp, QtCore.SLOT("quit()")) 

     self.connect(start, QtCore.SIGNAL("clicked()"), 
      QtGui.qApp, QtCore.SLOT("mediastart()")) 

     self.connect(start, QtCore.SIGNAL("clicked()"), 
      self, QtCore.SLOT("mediastop()")) 

どのような方法で、このクラス内の関数へのアクションを接続するpropperの方法は次のとおりですが、私のロジックに何か問題がある...見てください?

答えて

4

self.mediastopを使用してください。 QtCore.SLOT('mediastop()')は、C++で定義された(この場合は存在しない)スロットを指します。とにかくそれが本当に必要ではない、あなたはWidgetClass.slotNameを使用することができます - それはあなたに変換を保存します。

私たちがいる間は、old-style signals/slotsからnew-style signals/slotsに切り替えるべきです。例えば。 self.clicked.connect(self.mediastop)

+0

ty ty、私は新しいスタイルが好きです:) – Jason94

関連する問題