如果我的头衔被取消了,我提前道歉了。我的工具中有一堆小部件,如果用户对它们进行了更改,我会尝试让信号运行一个额外的方法,主要是QLineEdits和QSliders
我使用Qt设计器创建了它们,它们的信号在main.py
中设置,滑块/线编辑的方法基本相同:
class MyUI(QtGui.QWidget):
def __init__(self, parent=None, dockable=True):
super(MyUI, self).__init__(parent=parent)
# calling from my converted .ui file
self.ui = Ui_MyTool()
self.ui.setupUi(self)
self._connect_signals()
def _connect_signals(self):
self.ui.posXSlider.valueChanged.connect(self.pos_x_slider)
self.ui.posYSlider.valueChanged.connect(self.pos_y_slider)
self.ui.posZSlider.valueChanged.connect(self.pos_z_slider)
self.ui.transparencySlider.valueChanged.connect(self.transparency_slider)
self.ui.posXLineEdit.editingFinished.connect(self.pos_x_edit)
self.ui.posYLineEdit.editingFinished.connect(self.pos_y_edit)
self.ui.posZLineEdit.editingFinished.connect(self.pos_z_edit)
self.ui.transparencyLineEdit.editingFinished.connect(self.transparency_edit)
def pos_x_slider(self, value):
value /= 100.0
self.posXLineEdit.setText(str(value))
self.run_this_extra_method()
def pos_x_edit(self):
value = float(self.ui.posXLineEdit.text())
self.ui.posXSlider.setValue(float(value) * 100.0)
self.run_this_extra_method()
def run_this_extra_method(self):
# doing some other stuff
如您所见,我在slider和line edit方法中都调用了run_this_extra_method
,并且看到我有4个slider+4行编辑,这将产生8个调用/行run_this_extra_method
有没有什么方法可以让我“整理”/“捕获”或某种方式,这样每当用户对这些小部件进行任何更改时,我就可以调用run_this_extra_method
一次
试试看:
main.py
相关问题 更多 >
编程相关推荐