Qt MainWindow 在 Linux 中的位置
Qt MainWindow Position in Linux
我的主 window 打开在显示器的左上角,只在 linux 下面。它看起来很奇怪,尤其是当程序启动时出现信息弹出窗口时,它正确居中,其中 mainwindow 在 Mac 和 Windows 上!截图如下:
我该如何解决这个 Linux 问题?
默认情况下,window 会在 window 经理放置的任何位置打开。您需要将 window 移动到 setGeometry
。
您可以使用 setGeometry
将 window 置于中间。它可以像:
#include <QStyle>
#include <QDesktopWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, w.size(), qApp->desktop()->availableGeometry()));
w.show();
return a.exec();
}
另一种方式:
MainWindow w;
QDesktopWidget *desktop = QApplication::desktop();
int screenWidth = desktop->width();
int screenHeight = desktop->height();
int x = (screenWidth - w.width()) / 2;
int y = (screenHeight - w.height()) / 2;
w.move(x, y);
w.show();
我的主 window 打开在显示器的左上角,只在 linux 下面。它看起来很奇怪,尤其是当程序启动时出现信息弹出窗口时,它正确居中,其中 mainwindow 在 Mac 和 Windows 上!截图如下:
我该如何解决这个 Linux 问题?
默认情况下,window 会在 window 经理放置的任何位置打开。您需要将 window 移动到 setGeometry
。
您可以使用 setGeometry
将 window 置于中间。它可以像:
#include <QStyle>
#include <QDesktopWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, w.size(), qApp->desktop()->availableGeometry()));
w.show();
return a.exec();
}
另一种方式:
MainWindow w;
QDesktopWidget *desktop = QApplication::desktop();
int screenWidth = desktop->width();
int screenHeight = desktop->height();
int x = (screenWidth - w.width()) / 2;
int y = (screenHeight - w.height()) / 2;
w.move(x, y);
w.show();