2011-01-29 22 views
1

我有这个小媒体应用程序,其中包含两个应启动和停止音乐的按钮。但也有一些是错误的,我的逻辑......请大家看看:如何将一个事件连接到一个函数?

以什么方式
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.mediastopQtCore.SLOT('mediastop()')指的是在C++中定义的一个(在这种情况下不存在)槽。不是说这不是真的有必要,你可以使用WidgetClass.slotName - 它只是为你节省一个转换。

虽然我们在它,你应该propably从old-style signals/slots切换到new-style signals/slots。例如。 self.clicked.connect(self.mediastop)

+0

ty ty,我喜欢新风格:) – Jason94 2011-01-29 12:04:26

相关问题