Qt Designer with Python:连接控制转盘和滑块

时间:2015-06-08 19:14:07

标签: python qt

我有兴趣制作一个看似简单的RGB色彩控制器,它包括一个控制转盘,3个不同颜色的滑块和3个LCD编号,全部在Qt设计器界面中。

表盘指向色轮上的位置,我使表盘周围的点范围从0到360,使蓝色,绿色和红色最大值(红色最大强度,蓝色和绿色输出没有颜色会仅给出红色)分别出现在0,120和240。

滑块输入一个表盘输出的整数。

我想知道如何让滑块开始在控制转盘上的一个点上获取信息,并让滑块在接近并从该滑块的最大值退回时上下移动。

我还想知道是否有办法将控制转盘的输出与滑块的输入相关联(如果控制转盘点为6,则滑块的位置会是3)。

任何关于如何做到这一点的想法或者更简单的方式来处理整件事情都会很棒!

1 个答案:

答案 0 :(得分:1)

此程序中有拨号器和旋转框。拨号器值与传递拨号器实际值的方法相关联。一旦方法接收到该值,它就会继续并在其中执行一些操作(在这种情况下将其减半),然后将值传递给spinbox值。

import PySide.QtCore as QtCore
import PySide.QtGui as QtGui
import sys

class MainWindow(QtGui.QDialog):
        def __init__(self):
                QtGui.QDialog.__init__(self)

                dial = QtGui.QDial()
                dial.setNotchesVisible(True)
                self.spinbox = QtGui.QSpinBox()

                layout = QtGui.QHBoxLayout()
                layout.addWidget(dial)
                layout.addWidget(self.spinbox)
                self.setLayout(layout)

                #connect this event to the given method. 
                dial.valueChanged.connect(self.changeSpinbox)

        def changeSpinbox(self, value):
                #do some operation on this value. In this case half it.
                self.spinbox.setValue(value / 2)

app = QtGui.QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
app.exec_()