QT qwidget.grab (). Save (filename.jpg) Не работает в Windows 10 - PullRequest
0 голосов
/ 27 марта 2020

Приложение изначально разрабатывалось для QT версии 5.5, развернутой в Windows 7. Снимки экрана сохраняются с помощью метода grab (). Теперь мы развернули программное обеспечение на Windows 10. В пользовательском интерфейсе есть виджеты, цвета фона которых обновлены до красного / зеленого / серого. С дисплеем все в порядке, но сохраненный файл .jpg не отображает цвета фона при открытии в программе просмотра фотографий или в любом другом приложении W10 по умолчанию для файлов jpg.

Я сохраняю файл jpg, используя:

void TestExecutiveView::on_createReportScreenShot(QString reportFolder, QString workflowFileNamePrefix)
{
    QString fileName = QString("%1/%2_TestReport.jpg").arg(reportFolder).arg(workflowFileNamePrefix);
    int fnbr = 1;
    while (QFile::exists(fileName))
    {
        fileName = QString("%1/%2_TestReport_%3.jpg")
                          .arg(reportFolder)
                          .arg(workflowFileNamePrefix)
                          .arg(QString::number(fnbr++));
    }
    m_ui->tabWidgetSxTest->grab().save(fileName);
}

То, как я устанавливаю цвет, используя стиль, выглядит следующим образом:

void TestExecutiveView::mConfigureTestStatusBox(QTextEdit* teWidget)
{
  const QString k_textEditStyleRed("QTextEdit {background: red}");
  QString colorStyle = k_textEditStyleRed;
  teWidget->setStyleSheet(colorStyle);
}
...