【问题标题】:How to get value from a QSlider [duplicate]如何从 QSlider 中获取价值 [重复]
【发布时间】:2019-03-25 20:52:16
【问题描述】:

在这段代码中,我想用 PyQt5 制作一个 QSlider 的 GUI。我想要的是在移动滑块时打印变化的值。但在这里,它只打印 90,这是滑块的主要值。

注意: 我知道可以通过 valuechange 函数打印不断变化的值。但我只需要从 init 函数打印值。

代码:

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QApplication, QCheckBox, QGridLayout,
QGroupBox,QMenu, QPushButton,
 QRadioButton, QVBoxLayout,
 QWidget, QSlider,QLabel)

class sliderdemo(QWidget):
   def __init__(self, parent = None):
      super(sliderdemo, self).__init__(parent)

      layout = QVBoxLayout()

      self.sl = QSlider(Qt.Horizontal)
      self.sl.setMinimum(0)
      self.sl.setMaximum(180)
      self.sl.setValue(90)
      self.sl.setTickPosition(QSlider.TicksBelow)
      self.sl.setTickInterval(10)

      layout.addWidget(self.sl)
      self.sl.valueChanged.connect(self.valuechange)
      self.setLayout(layout)
      self.setWindowTitle("slider")
      print(self.valuechange())

    def valuechange(self):
      self.size = self.sl.value()
      return self.size

def main():
   app = QApplication(sys.argv)
   ex = sliderdemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

【问题讨论】:

    标签: python user-interface pyqt pyqt4 pyqt5


    【解决方案1】:

    如果你真的想要,你可以:-)

    import sys
    from PyQt5.QtCore import Qt
    from PyQt5.QtWidgets import (QApplication, QCheckBox, QGridLayout,
                                 QGroupBox,QMenu, QPushButton,
                                 QRadioButton, QVBoxLayout,
                                 QWidget, QSlider,QLabel)
    
    class sliderdemo(QWidget):
        def __init__(self, vSl=90, parent=None):
            super(sliderdemo, self).__init__(parent)
            layout = QVBoxLayout()
            self.sl = QSlider(Qt.Horizontal)
            self.sl.setMinimum(0)
            self.sl.setMaximum(180)
            self.sl.setValue(vSl)
            self.sl.setTickPosition(QSlider.TicksBelow)
            self.sl.setTickInterval(10)
    
            layout.addWidget(self.sl)
            self.sl.valueChanged[int].connect(self.valuechange)
            self.setLayout(layout)
            self.setWindowTitle("slider")
            #print(self.valuechange())
            print("__init__vSl -> ", vSl)
    
        def valuechange(self, value):
            #self.size = self.sl.value()
            self.__init__(value)
            #return self.size
    
    def main():
       app = QApplication(sys.argv)
       ex = sliderdemo(90)
       ex.show()
       sys.exit(app.exec_())
    
    if __name__ == '__main__':
       main()
    

    【讨论】:

      猜你喜欢
      • 2017-08-18
      • 2016-04-04
      • 2017-11-01
      • 2012-09-19
      • 1970-01-01
      • 2014-12-22
      • 2019-05-27
      • 2017-10-19
      • 2018-07-24
      相关资源
      最近更新 更多