如何从QSlid中获取价值

2024-09-30 20:20:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

N.B:我知道可以从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()

Tags: 函数代码importselfinitmaindefsys
1条回答
网友
1楼 · 发布于 2024-09-30 20:20:47

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

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()

enter image description here

相关问题 更多 >