2017-12-26 5 views
0

Ich benutze Qt, aber ich weiß nicht, wie man ein QMainWindow-Fenster zentriert. Ich habe diesen Code geschrieben, aber es funktioniert nicht. Danke im Voraus.Wie zentriere ich ein QMainWindow?

QRect screenGeometry = QApplication::desktop()->screenGeometry(); 
int x = (screenGeometry.width() - w->width())/2; 
int y = (screenGeometry.height() - w->height())/2; 
w->move(x, y); // w is a QMainWindow pointer 

ich dieses:

enter image description here

+1

Was bedeutet es: * aber nicht funktioniert *.? Sie könnten ein Bild von dem zeigen, was Sie bekommen und bekommen wollen. – eyllanesc

+1

Lösung kann hier gefunden werden: http://www.qtcentre.org/threads/3399-set-QMainWindow-in-the-center-of-my-desktop – Asesh

+0

@eyllanesc Vielen Dank, ich aktualisierte die Antwort. –

Antwort

0

Vielen Dank an alle. Ich habe mein Problem mit diesem Code bereits gelöst.

w->setFixedSize(400, 400); 
int width = w->frameGeometry().width(); 
int height = w->frameGeometry().height(); 
QDesktopWidget wid; 
int screenWidth = wid.screen()->width(); 
int screenHeight = wid.screen()->height(); 
w->setGeometry((screenWidth/2)-(width/2),(screenHeight/2)-(height/2),width,height); 
w->show(); 

ich dieses:

enter image description here

-2

die Fenstergröße von size() Methode Get.

QDesktopWidget *desktop = QApplication::desktop(); 
int screenWidth, width; 
int screenHeight, height; 
int x, y; 
QSize windowSize; 
QRect rec = desktop->screenGeometry(); 
screenWidth = rec.width(); // get width of screen 
screenHeight = rec.height(); // get height of screen 

windowSize = size(); // size of our application window 
width = windowSize.width(); 
height = windowSize.height(); 

// little computations 
x = (screenWidth - width)/2; 
y = (screenHeight - height)/2; 

// move window to desired coordinates 
move (x, y); 

Hilfreiche Link: http://www.qtcentre.org/threads/3399-set-QMainWindow-in-the-center-of-my-desktop

+0

Das ist genau ** was das OP schon macht. Bitte versuchen Sie nicht, Fragen zu beantworten, wenn Sie die Frage oder den Code nicht verstehen. – IInspectable