как связать событие с функцией? - PullRequest
1 голос
/ 29 января 2011

У меня есть это маленькое мультимедийное приложение с двумя кнопками, которые должны запускать и останавливать музыку.но в моей логике что-то не так ... пожалуйста, взгляните:

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()"))

Каким образом можно подключить действие к функции в этом классе?

1 Ответ

4 голосов
/ 29 января 2011

Используйте self.mediastop.QtCore.SLOT('mediastop()') относится к (в данном случае несуществующему) слоту, определенному в C ++.Не то чтобы это не так уж и нужно, вы можете использовать WidgetClass.slotName - это просто экономит ваше преобразование.

И пока мы на этом, вам следует переключиться на сигналы / слоты старого стиля до сигналы / слоты нового стиля .Например, self.clicked.connect(self.mediastop).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...