如何根据单击的按钮选择lineedit

2024-09-28 01:32:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个按钮(例如AB),它们做同样的事情(基于用户选择)。因此,当您选择某个内容,然后单击按钮时,所选内容的名称将输入到按钮的行编辑中。例如,如果我单击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()),但似乎没有返回按钮名称


Tags: 函数nameself名称编辑内容getdef
1条回答
网友
1楼 · 发布于 2024-09-28 01:32:41

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)

相关问题 更多 >

    热门问题