我有两个按钮(例如A
和B
),它们执行相同的操作(基于用户选择)。因此,当您选择某些内容,然后单击按钮时,所选内容的名称将被输入到按钮的行编辑中。例如,如果我单击 buttonA
,输入将是 lineEditA
。
目前我创建了一个信号函数,如下所示:
def _connections_setup(self):
self.btnA.clicked.connect(self.get_sel_nameA)
self.btnB.clicked.connect(self.get_sel_nameB)
def get_sel_nameA(self):
sel_name = get_name_from_sel()
self.line_editA.setText(sel_name)
def get_sel_nameB(self):
sel_name = get_name_from_sel()
self.line_editA.setText(sel_name)
"""
def get_sel_name(self):
# Returns me a blank
button = self.sender()
print button.objectName()
# My objective here would be, if btnA is clicked, the sel_name will be inputted into lineEditA. Likewise for btnB
"""
如何确定单击了哪个按钮并将所选内容的名称正确输入到行编辑中,而不是创建两个类似的函数?
我尝试使用self.sender()
(请参阅get_sel_name()
),但它似乎没有返回按钮名称。
最佳答案
sender()
函数仅适用于直接连接到信号的插槽。所以你的代码需要看起来像这样:
def _connections_setup(self):
self.btnA.clicked.connect(self.get_sel_name)
self.btnB.clicked.connect(self.get_sel_name)
def get_sel_name(self):
button = self.sender()
name = button.objectName()
if button is self.btnA:
self.line_editA.setText(name)
elif button is self.btnB:
self.line_editB.setText(name)
关于python - 如何根据单击的按钮选择行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51389423/