如何根据单击哪个按钮选择行编辑

How to choose line-edit according to which button was clicked

我有两个按钮(例如 AB)做同样的事情(基于用户 selection)。所以当你 select 东西,然后点击按钮时, selection 的名字将被输入到按钮的行编辑中。例如,如果我点击 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
"""

不是创建两个相似的函数,而是如何确定单击了哪个按钮并将 selection 的名称正确输入到行编辑中?

我尝试使用 self.sender()(参见 get_sel_name()),但 return 我似乎没有按钮名称。

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)