Захват нескольких экранов - PullRequest
       3

Захват нескольких экранов

1 голос
/ 06 февраля 2020

У меня есть система с двойным (расширенным) экраном, и я пытаюсь сделать копии обоих:

QList<QScreen*> screenList = QGuiApplication::screens();
int i;

for (i = 0; i < screenList.size(); i++)
{
    QPixmap screencopy = screenList[i]->grabWindow(QApplication::desktop()->winId());
    ...
}

Хотя screenList содержит указатели на два разных экрана, результат при доступе к screenList [0] и screenList [1] всегда один и тот же, он делает экранную копию только первого экрана.

Есть идеи, что я здесь не так делаю?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Вы можете получить доступ к экранам через QDesktopWidget:

QDesktopWidget *widget = QApplication::desktop();
    int screens= widget->screenCount();
    QRect *screenRect=new QRect[screens];
    for (int i = 0; i < screens; ++i)
    {
         *(screenRect+i) = widget->screen(i)->geometry();
    }
1 голос
/ 06 февраля 2020

Для обоих экранов (или секунд) используйте это:

QPixmap screencopy = screen->grabWindow(0, screen->geometry().x(), screen->geometry().y(), screen->size().width(), screen->size().height());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...