Ubunutu22.04的qtcreator点击帮助卡死/点击桌面快捷文件卡死

问题描述

今天在使qtcreator的时候,想要去qt的帮助查看文档,但是点击后发现卡死,因为我是ubuntu22.04,qt5.15是通过apt安装的,可以在终端输入qtcreator打开,但是这时候是可以打开帮助查看文档的,我之前有创建了一个qtcreator的桌面文件,双击这个桌面文件打开帮助就会卡死,但是如果在桌面路径的终端环境下运行桌面文件就没问题
在这里插入图片描述

是整个电脑卡死,连微信截图都用不了

解决方法

发现了差异,就知道大概是运行环境的问题,应该是桌面双击启动和终端命令行启动环境不同导致的,我们可以直接运行

sudo journalctl | grep qtcreator

就可以获取qtcreator相关日志,我电脑打印了如下信息:

5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabasePrivate::addDatabase: duplicate connection name 'QHelpCollectionHandler-94572589021552-56662', old connection removed.
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabase: QSQLITE driver not loaded
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabase: available drivers:
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabasePrivate::addDatabase: duplicate connection name 'QHelpCollectionHandler-94572589021552-56663', old connection removed.
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabase: QSQLITE driver not loaded
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabase: available drivers:
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabasePrivate::addDatabase: duplicate connection name 'QHelpCollectionHandler-94572589021552-56664', old connection removed.
5月 12 18:04:21 qin org.qt-project.qtcreator.desktop\[109764]: QSqlDatabase: QSQLITE driver not loaded
5月 12 18:24:47 qin gnome-shell\[2302]: DING: Usage: qtcreator \[OPTION]... \[FILE]...
5月 12 18:24:54 qin gnome-shell\[2302]: DING: Usage: qtcreator \[OPTION]... \[FILE]...
5月 12 18:27:01 qin gnome-shell\[2302]: DING: Usage: qtcreator \[OPTION]... \[FILE]...
5月 12 18:27:04 qin gnome-shell\[2302]: DING: Usage: qtcreator \[OPTION]... \[FILE]...

主要错误信息:

QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:

解释:

终端启动 qtcreator 时,继承了你终端的环境变量,能够找到 Qt 插件目录(例如包含 libqsqlite.so 的 sqldrivers)。

而桌面快捷方式启动(通过 .desktop 文件)是由 GNOME shell 启动的,它不会继承你的用户终端环境变量,比如 QT_PLUGIN_PATH 或 LD_LIBRARY_PATH,所以会导致缺失插件,帮助模块尝试加载但失败,引发 UI 卡死。

修改desktop文件

那了解了原因,我们直接在desktop文件中加上环境即可
首先查找libqsqlite.so的位置

find /usr -name libqsqlite.so

我的位置:

/usr/local/Qt-5.15.3/plugins/sqldrivers/libqsqlite.so

我的原来desktop文件:

[Desktop Entry]
Name=Qt Creator
Exec=/usr/bin/qtcreator
Icon=/usr/local/Qt-5.15.3/doc/global/template/images/logo.png
Type=Application
Terminal=false

在Exec的可执行文件路径前加上:

env QT_PLUGIN_PATH=/usr/local/Qt-5.15.3/plugins

将QT_PLUGIN_PATH变量传递,修改后的desktop文件:

[Desktop Entry]
Name=Qt Creator
Exec=env QT_PLUGIN_PATH=/usr/local/Qt-5.15.3/plugins /usr/bin/qtcreator
Icon=/usr/local/Qt-5.15.3/doc/global/template/images/logo.png
Type=Application
Terminal=false

然后保存退出再次双击qtcreator桌面文件
在这里插入图片描述

点开帮助不会卡死,也加载出了文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值