2017-03-15 16 views
0

QLineEditとQSliderが相互作用しています。QSliderにfloatを使用

例:私はにQLineEditに値を設定すると、スライダーが更新されます、または私は全体のスライダをスライドさせた場合、それは私が代わりにint値のfloatを使用することができることをとにかくありにQLineEdit

# If user change value on the slider 
self.timer_slider.valueChanged.connect(self.set_value) 
# If user sets a value in the text box instead 
self.timer_value.textChanged.connect(self.set_slider) 

def set_slider(self, value): 
    self.timer_slider.setValue(int(value)) 

def set_value(self, value): 
    self.timer_value.setText(str(value)) 

で値を更新しますか?

+1

[QDoubleSpinBox](https://doc.qt.io/qt-5/qdoublespinbox.html)。 – ekhumoro

答えて

0

はずっと発見した後、これは私の作品:

# Connection Signals 

# When user tweaks using the slider 
self.slider.valueChanged[int].connect(self.update_spinbox) 
# When user modify via the spinbox 
self.spinbox_value.editingFinished.connect(self.update_slider) 


# Functions for each modication made towards slider and spinbox 
def update_slider(self): 
    # spinbox_value uses float/ doubles type 
    # '*100' is used to convert it into integer as QSlider 
    # only register integer type 
    spinbox_value = self.spinbox_value.value() * 100 
    self.slider.setSliderPosition(spinbox_value) 

def update_spinbox(self, value): 
    # QSlider only uses integer type 
    # Need to convert the value from integer into float 
    # and divides it by 100 
    self.spinbox_value.setValue(float(value)/100)