我在PyQT5中使用python 2.7,这是我的按钮:

self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(50, 240, 341, 32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.buttonBox.clicked.connect(Dialog.accept)
self.buttonBox.rejected.connect(Dialog.reject)

等等....
if __name__ == "__main__":

app = QApplication(sys.argv)
window = QDialog()
ui = Ui_Dialog()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

单击确定后如何执行功能?

最佳答案

不要连接到buttonBox.clicked,因为每个按钮都会被调用。

您的按钮箱连接应如下所示:

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

要在接受对话框时(即仅在单击“确定”按钮时)运行功能/插槽,请执行以下操作:
    self.accepted.connect(some_function)

如果要传递参数,请使用lambda:
    self.accepted.connect(lambda: some_function(param))

08-19 20:18