напечатать что-нибудь, если в QMessageBox нажата кнопка «Да» - PullRequest
1 голос
/ 07 марта 2020

Я использую PyQt5, и я создал QMessagebox, и я хочу напечатать что-нибудь, если нажата кнопка Да. Вот мой код

self.messageBox = QMessageBox()
self.messageBox.setText("Are You Sure with Left Edge You Chosed?")
self.messageBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
if self.messageBox == QMessageBox.Yes:
    self.confirmation = 1
    print("Yess Clicked")
else:
    self.confirmation = 0
self.messageBox.exec()

1 Ответ

1 голос
/ 07 марта 2020

Вы сравниваете QMessageBox виджет с QMessageBox.Yes, который не имеет смысла. Если вы хотите получить стандартную кнопку, связанную с нажатой кнопкой, вы должны использовать метод standardButton() и clickedButton():

self.messageBox = QMessageBox()
self.messageBox.setText("Are You Sure with Left Edge You Chosed?")
self.messageBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
self.messageBox.exec_()

if self.messageBox.standardButton(self.messageBox.clickedButton()) == QMessageBox.Yes:
    self.confirmation = 1
    print("Yess Clicked")
else:
    self.confirmation = 0
...