Centrare una QMainWindow in Qt
Quando lanciamo la finestra principale da QtCreator, la QMainWindow risulta centrata rispetto al desktop.
Poi avviamo il programma senza passare per QtCreator, e la finestra è decentrata.
Ho provato a vedere nel relativo file .ui, ma non ho trovato nulla al riguardo.
Però è possibile forzare la centratura in avvio da codice.
Nel file di implementazione della QMainWindow:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
ui(new Ui::MainWindow) {
ui->setupUi(this);
QRect screenGeometry = QApplication::desktop()->screenGeometry();
int x = (screenGeometry.width()-this->width()) / 2;
int y = (screenGeometry.height()-this->height()) / 2;
this->move(x, y);
}
Ricordatevi che nel file di intestazione dovete includere anche questo:
#include <QDesktopWidget>
In pratica prendiamo il riferimento della grandezza dello schermo con QRect e QApplication (screenGeometry).
E poi spostiamo la finestra con la funzione move.
Enjoy!
c++ qt qmainwindow qdesktopwidget qrect qapplication screengeometry qtcreator
Commentami!