2017-03-15 5 views
0

서로 상호 작용하는 QLineEdit 및 QSlider가 있습니다.QSlider에 float 사용

예 : 나는 QLineEdit에 값을 설정하면 슬라이더가 업데이트됩니다, 또는 내가 통해 슬라이더를 밀어 경우, 내가 대신 intfloat을 사용할 수 어쨌든 있나요 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)