Reputation: 183
Seems to be possible with native controls (see here and here) so now I'm looking for some Qt code to do it.
Upvotes: 18
Views: 33757
Reputation: 87
This problem got solved while using window->showFullScreen() instead of window->show().
Upvotes: -1
Reputation: 32635
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();
Upvotes: 20
Reputation: 14603
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
Upvotes: 6
Reputation: 2831
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();
Upvotes: 20