2017-08-09 4 views
0

pythonでpyqt5をメソッドに使用してQtWidgets.QDoubleSpinBoxの変更を接続する方法を調べようとしています。 AFAICS QtWidgets.QDoubleSpinBox.valueChangedには、(PYQT4のように)もう接続関数がありません。PYQT5がQtWidgets.QDoubleSpinBoxの変更を接続しました

...私は答えを検索しようとしたが、私はちょうどカントはこれを実現する方法を見つけるように見えることを知っている

誰ですか?

EDIT1>返信用 おかげで、私はこれに違いを参照してくださいカント:ご返信用

おかげで、私は最後の行は動作しません。この

self.dsbGR = QtWidgets.QDoubleSpinBox(self.centralwidget) 
self.dsbGR.setDecimals(3) 
self.dsbGR.setSingleStep(0.1) 
self.dsbGR.setProperty("value", 3.0) 
self.dsbGR.setObjectName("dsbGR") 
self.dsbGR.valueChanged.connect(myfunction) 

に違いを参照してくださいカント方法はありません。connect

+0

myfunctionの実装方法を教えてください。 – eyllanesc

答えて

1

私はこの問題があなたがnew style of signal and slots connectionを使用していないと思っています。次の例では、ウィジェットQDoubleSpinBoxでその使い方を示しています。

from PyQt5 import QtCore, QtGui, QtWidgets 


class MainWindow(QtWidgets.QMainWindow): 
    def __init__(self, parent=None): 
     QtWidgets.QMainWindow.__init__(self, parent) 
     self.centralwidget = QtWidgets.QWidget(self) 
     self.setCentralWidget(self.centralwidget) 
     self.centralWidget().setLayout(QtWidgets.QVBoxLayout()) 


     self.dsbGR = QtWidgets.QDoubleSpinBox(self.centralwidget) 
     self.dsbGR.setDecimals(3) 
     self.dsbGR.setSingleStep(0.1) 
     self.dsbGR.setProperty("value", 3.0) 
     self.dsbGR.setObjectName("dsbGR") 
     self.dsbGR.valueChanged.connect(self.onValueChanged) 
     self.centralWidget().layout().addWidget(self.dsbGR) 

    def onValueChanged(self, val): 
     print(val) 

if __name__ == "__main__": 
    import sys 
    app = QtWidgets.QApplication(sys.argv) 
    w = MainWindow() 
    w.show() 
    sys.exit(app.exec_()) 
+0

お返事に感謝、私はこのself.dsbGR = QtWidgets.QDoubleSpinBox(self.centralwidget) self.dsbGR.setDecimals(3) self.dsbGR.setSingleStep(0.1) self.dsbGR.setPropertyとの違いを参照してくださいカント( "value"、3.0) self.dsbGR.setObjectName( "dsbGR") self.dsbGR.valueChanged。 –

+0

どのようにテストをしていますか?ボタンを押しましたか? – eyllanesc

+0

あなたのスニペットは正常に動作しますが、上のコード(クラスメソッド内)には接続がありません。 –

関連する問題