2017-08-16 21 views
-1

私はタブウィジェット内のグリッドレイアウト内に水平スライダを持つQt DesignerでGUIを作成しました。私は私のメインのコードで解除信号のための接続を設定しているPyqtスライダーが更新されない

self.horizontalSlider = QtGui.QSlider(self.tab) 
self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) 
self.horizontalSlider.setObjectName(_fromUtf8("horizontalSlider")) 
self.horizontalSlider.setRange(0.1,0.4) 
self.horizontalSlider.setValue(0.4) 
self.horizontalSlider.setTickInterval(0.05) 
self.gridLayout_4.addWidget(self.horizontalSlider, 3, 1, 1, 1) 

:ここGUI.pyファイルからコードが実行時に

self.horizontalSlider.sliderReleased.connect(self.SmoothSelected) 

、スライダーは、開始位置のままであります私はそれを動かすことができません。私は、その値をテストした:

print(self.horizontalSlider.value()) 

が、私がする値を設定してきたように「0」ではなく、「0.4」を取得します。タブ内の他のウィジェットは正常に動作します。私は何かを有効にするような簡単なことを忘れてしまったのですか?

答えて

2

ドキュメントの状態:

スライダーが有界値を制御するための古典的なウィジェットです。 は、ユーザーがスライダーハンドルを水平または垂直の溝に沿って移動させ、ハンドルの位置を有効範囲内のの整数値 に変換することができます。

結果

setRangesetValuesetTickIntervalのみint型引数としてを受け入れます。つまり、スライダーを動かすことができるのは、の値だけです。

回避方法は、QSliderのint値を.01(または他の値)に掛けて浮動させるか、this gistのように独自のQDoubleSliderを実装するかのいずれかです。

+0

ありがとうございます!それは働いた –

関連する問題