Qt5编译报错:QTextBrowser类无setMarkdown成员求协助
问题解决:Qt 5.14.2编译报错
QTextBrowser无setMarkdown方法 报错原因
QTextBrowser::setMarkdown()是Qt 5.15及以上版本才新增的API,你当前使用的Qt 5.14.2不支持这个方法,导致编译失败。
两种解决方案
方案1:升级Qt版本到5.15+
- 下载安装Qt 5.15或更高版本(推荐选择LTS稳定版本如5.15.x)
- 重新配置项目构建环境:
- 执行
qmake -v确认当前环境指向新版本Qt - 若用CMake构建,需指定新版本Qt的路径,示例命令:
cmake .. -DCMAKE_PREFIX_PATH=/opt/qt515/lib/cmake
- 执行
- 重新执行
make编译项目
方案2:修改代码兼容Qt 5.14.2
直接替换setMarkdown调用为Qt 5.14支持的写法,修改AboutDialog.cc第92行:
原代码:
changelog.setMarkdown(in_changelog.readAll());
替换为:
QTextDocument* doc = new QTextDocument(&changelog); doc->setMarkdown(in_changelog.readAll()); changelog.setDocument(doc);
解释:QTextDocument::setMarkdown()在Qt 5.14已存在,先给文档设置markdown内容,再绑定到QTextBrowser上可实现相同效果;同时将changelog设为文档父对象,能自动管理内存避免泄漏。
内容的提问来源于stack exchange,提问作者Pankaj Garg
相关产品推荐
相关产品推荐

