如何在Qt的第二台显示器上显示全屏窗口?

时间:2014-11-07 14:28:39

标签: c++ qt qt5

我在linux上使用Qt5,我想在第二个屏幕(双显示器)上显示全屏窗口形式?我试过这段代码,但它不起作用。还有其他办法吗?

QRect screenres = QApplication::desktop()->screenGeometry(1/*screenNumber*/);
Widget *secondDisplay = new Widget(); // Use your QWidget
secondDisplay->move(QPoint(screenres.x(), screenres.y()));
secondDisplay->resize(screenres.width(), screenres.height());

2 个答案:

答案 0 :(得分:2)

您可以使用QScreen

QScreen *screen = QGuiApplication::screens()[1]; // specify which screen to use

SecondDisplay secondDisplay = new SecondDisplay(); // your widget

secondDisplay->move(screen->geometry().x(), screen->geometry().y());
secondDisplay->resize(screen->geometry().width(), screen->geometry().height());
secondDisplay->showFullScreen();

答案 1 :(得分:1)

在Qt5中执行此操作的一种方法是使用QWindow::setScreen来设置应显示窗口的屏幕。 QWidgetwindowHandle(),返回指向QWindow

的指针

以下是如何在全屏模式下在最后一个屏幕中显示您的小部件:

secondDisplay->show();
secondDisplay->windowHandle()->setScreen(qApp->screens().last());
secondDisplay->showFullScreen();