环境:PyQt5 + VSCode
在Qt Designer中新建Main Window。将Input Widgets中的Spin Box、Double Spin Box和Display Widgets中的Progress Bar拖拽入窗口中。保存文件为pyqt4.ui。如下图。
新建文件pyqt4.py。
import sys
from Ui_pyqt4 import Ui_MainWindow
from PyQt5.QtWidgets import QApplication, QMainWindow
class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None): #parent 参数
super(MyMainWindow, self).__init__(parent)
self.setupUi(self)
self.spinBox.setRange(0,10) #设置取值范围(最大值, 最小值)
self.spinBox.setValue(1) #设置当前值
self.spinBox.setSingleStep(1) #步长,每按一下按钮改变的值
self.doubleSpinBox.setRange(0,10) #设置取值范围(最大值, 最小值)
self.doubleSpinBox.setValue(2) #设置当前值
self.doubleSpinBox.setDecimals(1) #设置小数点后位数
self.doubleSpinBox.setSingleStep(0.5) #步长,每按一下按钮改变的值
self.progressBar.setRange(0,10) #设置取值范围(最大值, 最小值)
self.progressBar.setValue(1) #设置当前值
self.progressBar_2.setRange(0,100) #设置取值范围(最大值, 最小值)。取值只取整数,乘10得到整数
self.progressBar_2.setValue(2*10) #设置当前值,乘10得到整数
self.spinBox.valueChanged.connect(self.func1) #值改变时
self.doubleSpinBox.valueChanged.connect(self.func2) #值改变时
def func1(self):
self.progressBar.setValue(self.spinBox.value()) #value()获得当前值
def func2(self):
self.progressBar_2.setValue(self.doubleSpinBox.value()*10) #value()获得当前值
app = QApplication(sys.argv)
win = MyMainWindow()
win.show()
sys.exit(app.exec_())
按F5运行得到
改变上面两个控件的值时,两个progress bar发生相应的变化。
SpinBox
方法
方法 | 内容 |
---|---|
setValue(1) | 设置当前值 |
setMaximum(10) | 设置最大取值 |
setMinimum(0) | 设置取值最小值 |
setRange(0,10) | 设置取值范围(最大值,最小值) |
setSingleStep(1) | 步长 |
value() | 获取当前值 |
信号
信号 | 内容 |
---|---|
valueChanged | 当值改变时 |
DoubleSpinBox
DoubleSpinBox的方法和信号与上述SpinBox类似。多了一个设置小数的方法
方法 | 内容 |
---|---|
setDecimals(1) | 设置小数点后位数 |
ProgressBar
方法
方法 | 内容 |
---|---|
setValue(1) | 设置当前值 |
setMaximum(10) | 设置最大取值 |
setMinimum(0) | 设置取值最小值 |
setRange(0,10) | 设置取值范围(最大值,最小值) |
value() | 获取当前值 |
minimum() | 获取进度条最小值 |
maximum() | 获取进度条最大值 |