如何根据单击哪个按钮选择行编辑
How to choose line-edit according to which button was clicked
我有两个按钮(例如 A
和 B
)做同样的事情(基于用户 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)
我有两个按钮(例如 A
和 B
)做同样的事情(基于用户 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)