Полноэкранное окно дисплея на дополнительном мониторе с использованием Qt
Кажется, что это возможно с помощью собственных элементов управления (см. здесь и здесь), так что теперь я ищу код Qt для этого.
Ответы
Ответ 1
Я использую этот код для второго отображения в полноэкранном режиме на 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();
Ответ 2
Один из способов сделать это в Qt5 - использовать QWindow::setScreen
для установки экрана, на котором должно отображаться окно. QWidget
имеет windowHandle()
, который возвращает указатель на QWindow
.
Вот как показать ваш виджет на втором экране в полноэкранном режиме:
QWidget * widget = new QWidget();
widget->show();
widget->windowHandle()->setScreen(qApp->screens()[1]);
widget->showFullScreen();
Ответ 3
showFullScreen сначала, затем setGeometry.
Qt5 проверено OK
Ответ 4
Мое занятие:
auto const desktop(QApplication::desktop());
setGeometry(desktop->screenGeometry(1));
#ifndef Q_OS_WIN
setWindowState(Qt::WindowState(Qt::WindowFullScreen | windowState()));
#endif // Q_OS_WIN
Ответ 5
Эта проблема была решена при использовании window- > showFullScreen() вместо window- > show().