我对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());

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

MainWindow按预期返回(1920,0)的pos(),子菜单小部件为我提供(0,0)的pos()。

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

最佳答案

我认为这是因为要在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();

10-04 14:24