Reputation: 138
Here is my Dialog Button Box design on Python:
self.buttonBox = QtWidgets.QDialogButtonBox(Frame)
self.buttonBox.setGeometry(QtCore.QRect(200, 216, 144, 27))
self.buttonBox.setFont(font)
self.buttonBox.setAcceptDrops(False)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Discard|QtWidgets.QDialogButtonBox.Save)
self.buttonBox.setObjectName("buttonBox")
There are two buttons as shown above, which are Discard
and Save
. How to execute a particular unique function when I click Save
or Discard
. What I have tried is:
self.buttonBox.accepted.connect(self.save)
self.buttonBox.rejected.connect(self.discard)
However, the function execute only when I clicked Save
and did not work when I clicked Discard
. How to handle this?
Upvotes: 1
Views: 535
Reputation: 292
Discard
is a destructive
button, not a reject
button. You could either:
Cancel
, Close
, or Abort
and link to the rejected
signal as you are already doingDiscard
, connect to the clicked
signal and just verify in your self.discard
function that the clicked button (passed with the signal) was the Discard
button before doing anythingUpvotes: 1