python - 如何将 slider 连接到 PyQt4 中的函数?

标签 python pyqt

我试图将 slider 的值转换为函数,并在 lineEdit 小部件中显示该函数的值。 这是我的代码:

class MyForma1(object):
    def AddWidgets1(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(579, 542)
        self.horizontalSlider = QtGui.QSlider(Form)
        self.horizontalSlider.setGeometry(QtCore.QRect(120, 380, 321, 31))
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setInvertedAppearance(False)
        self.horizontalSlider.setInvertedControls(False)
        self.horizontalSlider.setObjectName(_fromUtf8("horizontalSlider"))
        self.lineEdit = QtGui.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(112, 280, 331, 20))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))

        self.retranslateUi(Form)
        QtCore.QObject.connect(self.horizontalSlider, QtCore.SIGNAL('valueChanged(int)'), Form.changeText)

    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "Form", None))

class MyForma2(QtGui.QDialog, MyForma1):
    def __init__(self, z11=0):
        QtGui.QDialog.__init__(self)
        self.AddWidgets1(self)
        self.z = z11

    def myfunc1(self):
        self.z = self.horizontalSlider.value


    def changeText(self):
        self.myfunc1()
        self.lineEdit.setText(str(self.z))

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Forma = MyForma2()
    Forma.show()
    sys.exit(app.exec_())

我想检索 slider 的值并将其分配给 self.z 并且在这种情况下我想知道我应该写什么而不是这个: self.z = self.horizo​​ntalSlider.value

最佳答案

它应该是 self.horizo​​ntalSlider.value(),因为 value 是可调用的。 但是,QHorizo​​ntalSlider.valueChanged 信号也会发出 slider 的值,因此您可以按如下方式更改 changeText 方法:

def changeText(self, value):
    self.z = value
    self.lineEdit.setText(str(self.z))

同时考虑使用新型信号槽机制:http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html

关于python - 如何将 slider 连接到 PyQt4 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031555/

相关文章:

python - 如何连接 pandas.DataFrames 列

python - QMutexLocker() 导致 UI 卡住

python - Tkinter 属性错误 : object has no attribute 'tk'

python - 从下拉菜单中抓取选定的值

python - 高效更新 Pandas sql

c++ - 自定义 QDockWidget 显示

python - 如何选择 QTextBrowser 中的所有事件

python - 处理不带双引号的 CSV 文件

python - PyQt4 中的多次拖放

python - 允许用户在 QFileDialog 中选择文件或文件夹