Seems to be possible with native controls (see here and here) so now I\'m looking for some Qt code to do it.
One way of doing it in Qt5 is to use QWindow::setScreen
to set the screen on which the window should be shown. QWidget
has a windowHandle()
that returns the pointer to the QWindow
.
Here is how to show your widget on second screen in full-screen mode :
QWidget * widget = new QWidget();
widget->show();
widget->windowHandle()->setScreen(qApp->screens()[1]);
widget->showFullScreen();
This problem got solved while using window->showFullScreen() instead of window->show().
I use this code for the second display in full screen successfully on both 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();
showFullScreen first, then setGeometry.
Qt5 tested OK
My take on this:
auto const desktop(QApplication::desktop());
setGeometry(desktop->screenGeometry(1));
#ifndef Q_OS_WIN
setWindowState(Qt::WindowState(Qt::WindowFullScreen | windowState()));
#endif // Q_OS_WIN