【发布时间】:2010-07-08 11:37:12
【问题描述】:
【问题讨论】:
标签: qt
【问题讨论】:
标签: qt
我在 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();
【讨论】:
在 Qt5 中这样做的一种方法是使用QWindow::setScreen 来设置应显示窗口的屏幕。 QWidget 有一个 windowHandle(),它返回指向 QWindow 的指针。
以下是如何以全屏模式在第二个屏幕上显示您的小部件:
QWidget * widget = new QWidget();
widget->show();
widget->windowHandle()->setScreen(qApp->screens()[1]);
widget->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 测试正常
【讨论】:
这个问题在使用 window->showFullScreen() 而不是 window->show() 时得到了解决。
【讨论】: