Вывести окно на весь экран на дополнительном мониторе с помощью Qt - PullRequest
15 голосов
/ 08 июля 2010

Кажется возможным с нативными элементами управления (см. здесь и здесь ), поэтому сейчас я ищу некоторый код Qt, чтобы сделать это.

Ответы [ 5 ]

16 голосов
/ 08 июля 2010

Я успешно использую этот код для второго отображения в полноэкранном режиме как в 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();
10 голосов
/ 02 июня 2015

Один из способов сделать это в Qt5 - использовать QWindow::setScreen для установки экрана, на котором должно отображаться окно. QWidget имеет windowHandle(), который возвращает указатель на QWindow.

Вот как показать ваш виджет на втором экране в полноэкранном режиме:

QWidget * widget = new QWidget();
widget->show();
widget->windowHandle()->setScreen(qApp->screens()[1]);
widget->showFullScreen();
5 голосов
/ 24 мая 2013

сначала покажите полный экран, затем установите геометрию.

Qt5 протестировано ОК

4 голосов
/ 31 мая 2013

Мой взгляд на это:

  auto const desktop(QApplication::desktop());

  setGeometry(desktop->screenGeometry(1));

#ifndef Q_OS_WIN
  setWindowState(Qt::WindowState(Qt::WindowFullScreen | windowState()));
#endif // Q_OS_WIN
0 голосов
/ 17 февраля 2017

Эта проблема была решена при использовании window-> showFullScreen () вместо window-> show ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...