setStandardButtons(QMessageBox.Cancel) в PyQt6

У меня два вопроса.

  1. Не получается добавить кнопку в setStandardButtons(QMessageBox.Cancel). Слово Cancel подсвечивается как ошибка и при нажатии кнопки message, программа закрывается.
  2. И вторая проблема, когда нажимаю на кнопку '2', то получается что в окне QLineEdit можно напечатать только один раз цифру, т.е. хотел бы, чтобы сколько раз нажал на кнопку, столько цифра '2' и появилась. Как я понял надо делать это через цикл, но я не понял как.

import sys
from PyQt6.QtWidgets import *

class Calc(QDialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Calculator')
        self.resize(300, 300)

        self.one = QPushButton('message', self)
        self.one.move(100, 200)
        self.one.clicked.connect(self.mes)

        self.two = QPushButton('2', self)
        self.two.move(200, 200)
        self.two.clicked.connect(self.click)

        self.lne_edit = QLineEdit(self)
        self.lne_edit.move(50, 100)



    def click(self, num):
        self.lne_edit.setText(self.two.text())

    def mes(self):
        self.msg = QMessageBox(self)
        self.msg.setText('Привет')
        self.msg.setInformativeText('Другое сообщение')
        self.msg.setStandardButtons(QMessageBox.Cancel)
        self.msg.exec()

        
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        Calc = Calc()
        Calc.show()
        sys.exit(app.exec())

введите сюда описание изображения


Ответы (1 шт):

Автор решения: S. Nick
  • PyQt5:

    self.msg.setStandardButtons(QMessageBox.Cancel)

  • PyQt6:

    self.msg.setStandardButtons(QMessageBox.StandardButtons.Cancel)

  1. self.lne_edit.setText(self.lne_edit.text() + self.two.text())

class Calc(QDialog): 
    def __init__(self):
        super().__init__()
        
        self.setWindowTitle('Calculator') 
        self.resize(300, 300)

        self.one = QPushButton('message', self)
        self.one.move(100, 200)
        self.one.clicked.connect(self.mes)

        self.two = QPushButton('2', self)
        self.two.move(200, 200)
        self.two.clicked.connect(self.click)

        self.lne_edit = QLineEdit(self)
        self.lne_edit.move(50, 100)



    def click(self, num):
# -        self.lne_edit.setText(self.two.text())
        self.lne_edit.setText(self.lne_edit.text() +  self.two.text())        # !!!
        

    def mes(self):
        self.msg = QMessageBox(self)
        self.msg.setText('Привет')
        self.msg.setInformativeText('Другое сообщение')
# !!!        
#        self.msg.setStandardButtons(QMessageBox.Cancel)                       # PyQt5
        self.msg.setStandardButtons(QMessageBox.StandardButtons.Cancel)       # PyQt6   # !!!
        
        self.msg.exec()

    
if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Calc()
    w.show()
    sys.exit(app.exec())

введите сюда описание изображения

→ Ссылка