Qt MainWindow Позиция в Linux

У меня есть ситуация, когда мое главное окно открывается в левом верхнем углу монитора, только под Linux. Это выглядит довольно странно, особенно, когда при запуске программы появляется всплывающее информационное окно, которое правильно центрировано там, где основное окно находится на Mac и Windows! Снимок экрана ниже:

введите описание изображения здесь

Как я могу исправить эту проблему Linux?

2

Решение

Ты можешь использовать setGeometry расположить окно в центре. Это может быть как:

#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();
1

Другие решения

По умолчанию окно открывается там, где его размещает менеджер окон. Вам нужно переместить окно с setGeometry,

0

По вопросам рекламы [email protected]