QMessageBox zentrieren

Alles rund um die Programmierung mit Qt
Antworten
sea_bear
Beiträge: 61
Registriert: 9. Oktober 2005 16:40
Wohnort: Schortens

QMessageBox zentrieren

Beitrag von sea_bear »

Moin moin!
Mein Hauptfenster ist in der linken oberen Ecke des Bidschirms angeordnet (besteht nur aus ein paar kleinen Knöpfen). Die einzelnen Fenster die meine Anwendung öffnet, sind immer Mitte Schirm angeordnet. Nun zeige ich aber für Fehler oder Warnungen eine QMessageBox an. Leider ist die aber nun immer auf mein Hauptfenster links oben zentriert und nicht auf mein Fenster welches diese nun erzeugen sollte.

Mein Code sieht wie folgt aus:

Code: Alles auswählen

  QMessageBox::warning(0,"KBDM",
                         "Could not connect to the Database Server!\n"
                         "This program can't function correctly "
                         "without the server.\n\n",
                         "OK",0,0,0,1);
Wie bekomme ich das aber nun hin?

mfg
Tobias
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

ich habe es so gelöst:

Code: Alles auswählen

QDesktopWidget dw;
QMessageBox mb( QMessageBox::Warning, "KBDM",
                  "Could not connect to the Database Server!\n"
		            "This program can't function correctly "
		            "without the server.\n\n" );
mb.move( ( dw.width() - mb.width() ) / 2, ( dw.height() - mb.height() ) / 2 );
mb.exec();
//edit: nachtrag: da QMessageBox von QWidget erbt (über QDialog), kann man ganz normal move() benutzen, muss dazu aber logischer weise eine instanz der klasse erstellen.

mfg,
julian
Antworten