移动QMainWindow不会影响绘制子窗口小部件的位置

时间:2016-01-12 23:10:35

标签: c++ qt qt4

我对Qt环境很陌生。我有一个应用程序,我想在第二台显示器上显示。目前,在MainWindow构造函数中,我使用以下代码将窗口移动到第二个监视器。

主要():

MainWindow w;
w.showFullScreen();

MainWindow()构造函数:

QRect screenres = QApplication::desktop()->screenGeometry(1);
this->move(QPoint(screenres.x(), screenres.y()));
this->resize(screenres.width(), screenres.height());

这适用于我的主窗口。问题是所有子窗口小部件仍然显示在第一台监视器上。我有一个菜单小部件,它是在move()之后在构造函数中创建的centralWidgetFrame的一部分,但它不会在第二个监视器上创建。根据我的理解,子小部件应该在相对于父级的位置创建。

MainWindow按预期返回(1920,0)的pos(),子菜单小部件给我一个(0,0)的pos()。

我正在使用Qt 4.7.1。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为这是因为您在其构造函数中移动和调整MainWindow的大小。

在main()中执行:

MainWindow w;
QRect screenres = QApplication::desktop()->screenGeometry(1);
w.move(QPoint(screenres.x(), screenres.y()));
w.resize(screenres.width(), screenres.height());
w.showFullScreen();