Hello,
Since upgrade to macOS 27.0.1 this simple code is crashing with PyQt6 when trying to display the QMessageBox:
import sys
from PyQt6.QtWidgets import (
QApplication,
QWidget,
QPushButton,
QMessageBox,
QVBoxLayout,
)
app = QApplication(sys.argv)
window = QWidget()
window .setWindowTitle("Sample")
button = QPushButton("Display")
def display_dialog():
QMessageBox.question(
window,
"Confirmation",
"Continue ?",
QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel,
QMessageBox.StandardButton.Cancel,
)
button .clicked.connect(display_dialog)
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window .show()
sys.exit(app.exec())
As workaround this works:
import sys
from PyQt6.QtWidgets import (
QApplication,
QWidget,
QPushButton,
QMessageBox,
QVBoxLayout,
)
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Sample")
button = QPushButton("Display")
def display_dialog():
dialog = QMessageBox(window)
dialog.setOption(QMessageBox.Option.DontUseNativeDialog, True)
dialog.setWindowTitle("Confirmation")
dialog.setText("Continue ?")
dialog.setStandardButtons(
QMessageBox.StandardButton.Ok
| QMessageBox.StandardButton.Cancel
)
dialog.exec()
button.clicked.connect(display_dialog)
layout = QVBoxLayout(window)
layout.addWidget(button)
window.show()
sys.exit(app.exec())
So it looks like usage of native dialog box is broken with macOS 27.0.1.
Is this a known issue? If not, can anybody reports this to Qt developers?
Thanks