问题描述
我正在努力通过单击按钮的信号传递上下文信息。
这是一个最小示例,它创建了一个带有多个编号按钮的小部件。单击每个按钮时,消息框应显示相应的编号。
import sys
from PySide6 import QtCore,QtWidgets,QtGui
class Gui(QtWidgets.QWidget):
def __init__(self,parent=None,n_buttons=9):
super(Gui,self).__init__(parent)
self._mainLayout = QtWidgets.QVBoxLayout()
self.setLayout(self._mainLayout)
for n in range(n_buttons):
btn = QtWidgets.QPushButton(str(n))
self._mainLayout.addWidget(btn)
btn.clicked.connect(
lambda val=n: self.showMsg(val)
)
def showMsg(self,message):
msg = QtWidgets.QMessageBox()
msg.setText(str(message))
msg.setStandardButtons(QtWidgets.QMessageBox.Ok)
msg.exec()
def main():
app = QtWidgets.QApplication([])
view = Gui()
view.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
相反,无论我单击哪个按钮,消息框都会显示“False”。
我尝试使用 lambda 函数实现信号,按照此处的说明进行操作:https://www.learnpyqt.com/tutorials/transmitting-extra-data-qt-signals/
感谢您的建议!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)