gpt4 book ai didi

python - 如何从 Qt 对话框获取自定义信号

转载 作者:行者123 更新时间:2023-12-01 00:35:47 25 4
gpt4 key购买 nike

我有一个带有 3 个按钮的 QDialog - 应用、确定和取消。在对话框的 __init__ 方法中,我使用以下命令连接“确定”和“取消”:

buttonBox.accepted.connect( self.accept )
buttonBox.rejected.connect( self.reject )

在我的主窗体中,我可以使用

运行 OK 信号的方法 (addNameToSandbox)
self.__nameDialog.accepted.connect(self.__addNameToSandbox)

但是,我希望“应用”按钮执行相同的操作,但保持子对话框打开(而不是使用“确定”按钮关闭子对话框)。如何在主窗口上获得该信号?

我在子对话框中有一个方法,当单击“应用”时我可以运行该方法,但如何在主窗体中触发操作,我不知道。

buttonBox.button( QtGui.QDialogButtonBox.Apply ).clicked.connect( self.add )

我尝试过使用其他一些信号,例如完成,但我也无法弄清楚。

最佳答案

在对话框中创建一个信号并将其连接到单击的应用按钮,然后使用信号在主窗体中连接它:

class YourDialog(QtGui.QDialog):
applyClicked = QtCore.pyqtSignal()

def __init__(self, parent=None):
super(YourDialog, self).__init__(parent):
# ...
buttonBox.accepted.connect(self.accept)
buttonBox.rejected.connect(self.reject)
apply_button = buttonBox.button(QtGui.QDialogButtonBox.Apply)
apply_button.clicked.connect(self.applyClicked)
# ...
self.__nameDialog.accepted.connect(self.__addNameToSandbox)
self.__nameDialog.applyClicked.connect(self.__applyfunc)

关于python - 如何从 Qt 对话框获取自定义信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57785665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com