pyqt4事件编程(信号和插槽)

时间:2014-04-01 19:20:20

标签: pyqt4

我正在尝试将此事件代码更改为标准信号槽格式。 但它不起作用。 我可以得到帮助吗?

这是幻灯片编号更改为lcd显示编号。 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

import sys
from PyQt4 import QtGui, QtCore


class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        self.lcd = QtGui.QLCDNumber(self)
        self.sld = QtGui.QSlider(QtCore.Qt.Horizontal, self)

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.lcd)
        vbox.addWidget(self.sld)

        self.setLayout(vbox)
        #sld.valueChanged.connect(lcd.display)

        QtCore.QObject.connect(self.sld, QtCore.SIGNAL(str1), self, QtCore.SLOT("SHOW()"))

        @QtCore.pyqtSlot()
        def SHOW(str1):
            self.lcd.display()


        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Signal & slot')
        self.show()

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:0)

你的第一次尝试非常接近。您所需要的只是:

    self.sld.valueChanged.connect(self.lcd.display)

(可删除最多self.setGeometry的其他行。)