在Qt5中的一种做法是使用QWindow::setScreen
来设置窗口应该显示的屏幕。 QWidget
有一个windowHandle()
函数,返回指向QWindow
的指针。
以下是如何在第二个屏幕上以全屏模式显示您的小部件的方法:
QWidget * widget = new QWidget();
widget->show();
widget->windowHandle()->setScreen(qApp->screens()[1]);
widget->showFullScreen();
我成功地在Windows和Linux上使用此代码将第二个显示器全屏。
QRect screenres = QApplication::desktop()->screenGeometry(1/*screenNumber*/);
SecondDisplay secondDisplay = new SecondDisplay(); // Use your QWidget
secondDisplay->move(QPoint(screenres.x(), screenres.y()));
secondDisplay->resize(screenres.width(), screenres.height());
secondDisplay->showFullScreen();
我的看法是:
auto const desktop(QApplication::desktop());
setGeometry(desktop->screenGeometry(1));
#ifndef Q_OS_WIN
setWindowState(Qt::WindowState(Qt::WindowFullScreen | windowState()));
#endif // Q_OS_WIN
先调用showFullScreen,然后设置setGeometry。
在Qt5中测试通过。