如果您有一个Buttons和LineEdits列表,则可以使用以下命令:
QSignalMapper
,另一个说明functools.partial
, 像这样:def show_dialog(self, line_edit):...line_edit.setText(...)
for button, line_edit in zip(buttons, line_edits):
button.clicked.connect(functools.partial(self.show_dialog, line_edit))lambda
的for button, line_edit in ...: button.clicked.connect(lambda : self.show_dialog(line_edit))
如果您使用的是Qt Designer,并且没有按钮和lineedit的列表,但是它们都具有相同的命名模式,则可以使用一些自省:
class Foo(object): def __init__(self): self.edit1 = 1 self.edit2 = 2 self.edit3 = 3 self.button1 = 1 self.button2 = 2 self.button3 = 3 def find_attributes(self, name_start): return [value for name, value in sorted(self.__dict__.items()) if name.startswith(name_start)]foo = Foo()print foo.find_attributes('edit')print foo.find_attributes('button')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)