[gelöst] QMessageBox lässt sich nicht mit X schließen

Alles rund um die Programmierung mit Qt
Antworten
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

[gelöst] QMessageBox lässt sich nicht mit X schließen

Beitrag von Bagstone »

Tag zusammen,

ich habe eine QMessageBox in mein Programm eingebaut und nun das Problem, dass ich sie mit einem Klick auf das X nicht schließen kann. Die QMessageBox hat das WindowFlag alwaysontop, aber auch wenn ich das wegnehme ändert sich nix.

Code: Alles auswählen

QMessageBox askForUpdate;
askForUpdate.setWindowTitle(tr("Update available"));
askForUpdate.setText(tr("A new update is available.\n"
	   "Do you want it to be downloaded and installed automatically,\n"
	   "visit the website to download manually or do nothing now?"));
askForUpdate.addButton("&Automatically", QMessageBox::AcceptRole);
askForUpdate.addButton("&Nothing", QMessageBox::DestructiveRole);
askForUpdate.addButton("&Manually", QMessageBox::RejectRole);
askForUpdate.setWindowFlags(Qt::WindowStaysOnTopHint);
askForUpdate.activateWindow();
askForUpdate.setFocus();
askForUpdate.exec();
Jemand eine Idee?
Hab über die Foren-Suche nix zu dem Thema gefunden.
Zuletzt geändert von Bagstone am 15. Januar 2008 17:39, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich glaube die Funktion setWindowFlags heisst nicht umsonst so - alle anderen Flags werden dabei gelöscht. --> setWindowFlags(windowFlags() | myFlag)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag von Bagstone »

Sorry, das ist im Originalpost wohl untergegangen:
Auch wenn ich diese Anweisung komplett rausnehme, geht es nicht. Und ich finde keinen WindowFlag, der das schließen per X verhindert/ermöglicht... hab auch schon in die Qt Sourcen geschaut weil bei einer statischen QMessageBox::warning() geht das, aber nix gefunden.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Es funktioniert nicht mehr sobald mehr als ein Button angezeigt wird da dann nicht ersichtlich ist, welcher der Buttons gedrückt wurde. Habs gerade ausprobiert.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag von Bagstone »

Danke, dass war ein guter Tipp ;-)

Ein Blick in die richtige Stelle des Qt sourcecodes hat mich dann völlig aufgeklärt:

Entweder man macht a) nur einen Button in seine MessageBox oder b) einen StandardButton der Form "QMessageBox::Cancel", dann wird das klicken des X auf diesen umgeleitet. Hab den Button "Nothing" nun dadurch ersetzt und jetzt geht es.

Vielen Dank dir mal wieder :-)
Antworten