左边的控件是 QDial
, 右边的控件是 QSpinBox
。两者相互关联,转动刻度右边的数字随之改变,改变右边的数字,左边的刻度盘也跟着转到指定位置。
代码
import sys
from PyQt5.QtWidgets import QApplication, QWidget,QHBoxLayout,QSpinBox,QDial
class MyWindow(QWidget):
def __init__(self):
# 切记一定要调用父类的__init__方法,因为它里面有很多对UI空间的初始化操作
super().__init__()
# 设置大小
self.resize(300, 300)
# 设置标题
h_layout = QHBoxLayout()
self.spinBox = QSpinBox()
self.dial = QDial()
h_layout.addWidget(self.dial)
h_layout.addWidget(self.spinBox)
self.setLayout(h_layout)
self.spinBox.valueChanged.connect(self.changed_spinBox)
self.dial.valueChanged.connect(self.changed_dial)
def changed_spinBox(self, value):
# 槽函数,点击按钮则调用该函数
self.dial.setValue(value)
# 这里的参数正好是信号发出,传递的参数
print("数值改变啦", value)
def changed_dial(self, value):
# 槽函数,点击按钮则调用该函数
self.spinBox.setValue(value)
# 这里的参数正好是信号发出,传递的参数
print("数值改变啦", value)
if __name__ == '__main__':
app = QApplication(sys.argv) #只要是QT制作的app,必须只有一个QApplication对象
w = MyWindow() #创建一个 QWidget 对象
# 设置窗口标题
w.setWindowTitle("作业")
# 展示窗口
w.show()
# 程序进行循环等待状态
app.exec() #程序开始运行