setStandardButtons(QMessageBox.Cancel) в PyQt6
У меня два вопроса.
- Не получается добавить кнопку в
setStandardButtons(QMessageBox.Cancel). СловоCancelподсвечивается как ошибка и при нажатии кнопкиmessage, программа закрывается. - И вторая проблема, когда нажимаю на кнопку '
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)
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())

