我有 10 个由 lineedit 设计的小部件,qt-designer
我在代码中定义了信号和插槽,我的问题是在我的代码中重复相同的信号和插槽 10 次,如下所示:
self.ui.descCode_lineEdit_1.cursorPositionChanged.connect(lambda: self.Desc(1))
self.ui.Desc_lineEdit_1.editingFinished.connect(lambda: self.DescRate(1))
self.ui.descCode_lineEdit_2.cursorPositionChanged.connect(lambda: self.Desc(2))
self.ui.Desc_lineEdit_2.editingFinished.connect(lambda: self.DescRate(2))
...
self.ui.descCode_lineEdit_10.cursorPositionChanged.connect(lambda: self.Desc(10))
self.ui.Desc_lineEdit_10.editingFinished.connect(lambda: self.DescRate(10))
我写这些getattr
:
for i in range(1, 11):
getattr(self.ui, 'descCode_lineEdit_{}'.format(i)).cursorPositionChanged.connect(lambda: self.Desc(i))
getattr(self.ui, 'Desc_lineEdit_{}'.format(i)).editingFinished.connect(lambda: self.DescRate(i))
但是当运行代码时,只有第 10 个小部件的信号和插槽工作正常,其他字段没有。知道如何修复这部分代码并重复相同的信号吗?
谢谢。