记录更换QT版本后关于QWebEngineView设置背景颜色在5.13.2版本失效以及动态库无法定位程序输入点的问题

记录更换QT版本后关于QWebEngineView设置背景颜色在5.13.2版本失效以及动态库无法定位程序输入点的问题

一、起因

今天又一次进入到QT官网,发现版本已经更新到5.14,而自己的版本还在5.11.1,于是决定更新个版本,由于自己以前在新版本被坑过,所有想着新版本肯定有BUG(但其实都是稳定版才发布的),于是选了个5.13.2版本。

二、发现

问题一

安装好后我发现我们所做的工程QT之前的库也不兼容了,报了一堆动态库无法定位程序输入点的错误,类似以下这样:
错误图片
错误图片

问题二

编译好之后我发现我QWebEngineView设置的背景颜色竟然失效了,我当时的代码是这样写的:

m_impl->pEngView->page()->setBackgroundColor(QColor(34,36,42));

三、解决

问题一

这个问题很好解决,我将所有QT的动态库替换掉,并且将所有自己使用QT编译的动态库重新编译,然后顺利解决了这个问题。

问题二

老实说我不明白为什么我的代码会失效,函数定义是这样的:

void setBackgroundColor(const QColor &color)

但是是传入QColor却失效了,再经过查阅一番资料后将其更改为以下:

m_impl->pEngView->page()->setBackgroundColor(Qt::transparent);

然后成功的变透明了,我只需要将他嵌入一个Widget中,然后将Widget更改为自己想要的颜色即可,也算是解决了问题。

四、最后

最后的最后,我去看了文档,发现了这样的一句话:
This property holds the page’s background color behind the document’s body.
You can set the background color to Qt::transparent or to a translucent color to see through the document, or you can set it to match your web content in a hybrid application to prevent the white flashes that may appear during loading.
The default value is white.
This property was introduced in Qt 5.6.

这里说了让我们可以设置Qt::transparent来让他成为透明,然后后面我表示不太理解,这到底是能不能直接设置颜色?如果不能,为什么QT5.11.1版本却可以?

那么这个问题只能自己慢慢摸索了
——一篇来自QT新人的文章

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值