我有这个小媒体应用程序,它有两个按钮,可以启动和停止音乐。但是我的逻辑有些不对劲......请看一下:
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()"))
以什么方式将动作连接到此类中的函数?
答案 0 :(得分:4)
使用self.mediastop
。 QtCore.SLOT('mediastop()')
指的是在C ++中定义的(在这种情况下不存在的)槽。不是说那不是真的有必要,你可以使用WidgetClass.slotName
- 它只是为你节省转换。
虽然我们处于此状态,但您应该可以从old-style signals/slots切换到new-style signals/slots。例如。 self.clicked.connect(self.mediastop)
。