2011-01-29 3 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()")) 

каким способом является Проппер способ подключения действия к функции в этом классе?

ответ

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

Смежные вопросы