我正在使用Qt,但是我不知道如何居中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

我得到这个:

c++ - 如何居中QMainWindow?-LMLPHP

最佳答案

这些功能已过时:

QApplication::desktop()->screenGeometry()
QApplication::desktop()->availableGeometry()
QDesktopWidget::screen()
改用QScreen:
#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QScreen>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    move(QGuiApplication::screens().at(0)->geometry().center() - frameGeometry().center());
}

关于c++ - 如何居中QMainWindow?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47973666/

10-10 03:46