Проблема рендеринга QtWebKit (при втором открытии того же файла html отображается только белый экран) - PullRequest
1 голос
/ 30 мая 2020

Я сделал демонстрационное приложение, в котором я использую QtWebKit для отображения html файлов. Я столкнулся со странной проблемой, когда попытался отобразить файл во второй раз. Хотя в первый раз все показывалось правильно, во второй раз был показан только белый экран.

это файл заголовка:

#ifndef
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtWebKitWidgets/QtWebKitWidgets>
#include <QFileDialog>
#include <QFile>
#include <QTextStream>

QT_BEGIN_NAMESPACE 
namespace Ui
{
  class MainWindow;
}
QT_END_NAMESPACE 

class MainWindow:public QMainWindow
{
Q_OBJECT public:
  MainWindow (QWidget * parent = nullptr);
  ~MainWindow ();

private slots:
  void on_actionOpen_triggered ();
  void on_pushButton_released ();

private:
  Ui::MainWindow * ui;
  QWebView *view;
};

#endif // MAINWINDOW_H

это cpp файл:

#include "mainwindow.h" 
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent): 
QMainWindow(parent), ui(new Ui::MainWindow)
{ 
  ui->setupUi(this);
  view = new QWebView(this);
  view->setGeometry(0, 0, 600, 600);
}

MainWindow::~MainWindow()
{
  delete ui;
}

void MainWindow::on_actionOpen_triggered()
{
}

void MainWindow::on_pushButton_released()
{
  QString svgContext = "";
  QString fileName = 
    QFileDialog::getOpenFileName(this, 
      tr("Open SVG file"), 
      "", 
      tr("Svg file (*.svg);;All Files (*)"));

  QFile inputFile(fileName);
  if (inputFile.open(QIODevice::ReadOnly))
  {
    QTextStream in(&inputFile);
    while (!in.atEnd())
    {
        svgContext += in.readLine();
    }
    inputFile.close();
  }
  view->setHtml(svgContext);
}

Html файл отрисован правильно

Белый экран

Мой вопрос: В QtWebKit есть ошибка, и как ее решить?

...