Запустить программу на втором мониторе (Qt framework)
Я пишу программу (только для учебных целей, я хочу изучить C++) в рамках Qt. Можно ли получить, сколько мониторов подключено к моему компьютеру и запустить программу на другом мониторе? Я хочу иметь опцию в меню свойств, где я могу сказать, на каком мониторе показывать программу.
Я не мог найти ничего в вики разработчика Qt, может быть, вы, ребята, можете помочь мне с documention о том, как это сделать?
спасибо
3 ответов
можно использовать QDesktopWidget чтобы определить, сколько экранов вы подключили к компьютеру, а затем получить геометрию каждого экрана:
if (desktopWidget->screenCount() > 1)
{
QRect geom = desktopWidget->screenGeometry(1);
// do something useful with this information
}
вы также можете проверить, является ли это виртуальный рабочий стол, но это может не иметь значения для ваших пользователей.
вы можете получить количество мониторов и общий размер экрана с QDesktopWidget например.
QDesktopWidget *desktop = QApplication::desktop();
if ( 1==desktop->screenCount() ) {
// single monitor - use built in
showFullScreen();
} else {
QRect rect = desktop->screenGeometry(1);
move(rect.topLeft());
setWindowState(Qt::WindowFullScreen);
}
редактировать main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QWindow>
#include <QDesktopWidget>
#include <QDebug>
int main(int argc, char *argv[])
{
int ScreenIDWhereToShowWindow = 1;
QApplication a(argc, argv);
MainWindow w;
QDesktopWidget *desk = new QDesktopWidget();
w.setGeometry(desk->screenGeometry(ScreenIDWhereToShowWindow));
w.showFullScreen();
QApplication::setOverrideCursor(Qt::BlankCursor);
qDebug() << desk->screenGeometry(0);
qDebug() << desk->screenGeometry(1);
qDebug() << desk->screenGeometry(2);
return a.exec();
}