python - 如何根据单击的按钮选择行编辑

标签 python pyqt qpushbutton qlineedit

我有两个按钮(例如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()),但它似乎没有返回按钮名称。

最佳答案

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/

相关文章:

python - 想要使用实际位置和字母位置的总和为 python 中的数据框中的列创建分数

ubuntu - 如何在 Ubuntu 中为 Python 3 配置 PyQt4?

python - PyQt : No error msg (traceback) on exit

c++ - QTabWidget 奇怪的行为

c++ - 设置 Qt QPushButton 弹出菜单的位置(向右)

python:打印非继承方法

python libXML2 删除项目

c++ - QPushButton 的 Qt 背景图像

python - 将文档字符串添加到命名元组?

python - 如何在 python 程序的简单 UI 中显示实时图形?