c++ - 启动 QGraphicsView 应用程序时出现白屏

标签 c++ qt qt5 qt5.2

我们的应用程序使用 Qt 的 Graphics View 框架来加载 html 页面。 QGraphicsWebView 加载黑色背景的本地 html 页面。但是在启动应用程序时总是观察到白屏。我已经尝试为 QGraphicsViewQGraphicsScene 设置黑色背景。没有什么对我有用。

这是供您引用的示例代码。 MainWindow继承自QMainWindow

mGraphicsScene = new QGraphicsScene(this);

mGraphicsView = new QGraphicsView(mGraphicsScene);    
mGraphicsView->setViewport(new QGLWidget(this));

mGraphicsWebView = new QGraphicsWebView;
mGraphicsWebView->setUrl(QUrl("https://www.google.co.in/"));


mGraphicsScene->addItem(mGraphicsWebView);
setCentralWidget(mGraphicsView);

有什么办法可以避免应用白屏吗?

最好的问候, 普拉塔普

最佳答案

下一步试试。为什么看到白色?因为项目已经添加,但页面未加载,所以您看到没有页面的白色(空白)项目。为您的场景设置一些黑色像素图,将 loadFinished 信号连接到特殊插槽,您可以在其中将项目添加到场景中。在这种情况下,场景将是黑色的,但是当加载页面时,您的插槽将在 scnen 上添加它,您将只看到页面。

mGraphicsScene = new QGraphicsScene(this);
mGraphicsScene->addItem(new QGraphicsPixmapItem(QPixmap("G:/2/qt.jpg")));

mGraphicsView = new QGraphicsView(mGraphicsScene);
mGraphicsView->setViewport(new QGLWidget(this));

mGraphicsWebView = new QGraphicsWebView;
mGraphicsWebView->setUrl(QUrl("https://www.google.co.in/"));

connect(mGraphicsWebView,SIGNAL(loadFinished(bool)),this,SLOT(slotLoaded()));
//mGraphicsScene->addItem(mGraphicsWebView);
mGraphicsView->resize(1000,700);
mGraphicsView->show();

插槽:

void MainWindow::slotLoaded()
{
    mGraphicsScene->addItem(mGraphicsWebView);
}

例如由代码创建的黑色像素图:

QPixmap black(1000,700);
black.fill(Qt::black);

mGraphicsScene = new QGraphicsScene(this);
mGraphicsScene->addItem(new QGraphicsPixmapItem(black));

应用启动时:

enter image description here

如您所见,页面加载时全黑:

enter image description here

如您所见,这是一个普通的页面。它不是很漂亮,因为我使用了快速设置和调整窗口大小等,但是你将 graphicsview 设置为中央小部件,这样做会更漂亮。

关于c++ - 启动 QGraphicsView 应用程序时出现白屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26278444/

相关文章:

Linux AVR-IDE开发、vim集成

c++ - QChart实时表现

c++ - 在 Qt 中将父级添加到 UI 对象

用于各种参数类型的 C++ 类模板方法

c++ - 随机数函数 (C++11)

c++ - QTableView View 什么都不显示

c++ - 当在创建子项后设置父项时,子项对事件是透明的

c++ - 将 FetchContent_Declare 与 CMAKE_ARGS 一起使用

c++ - 使用clock_gettime在arduino中进行纳秒测量

c++ - 显式构造函数及其具有(默认?)值的定义