铸造QT5 Qhelpengine需要过时的铸造



我正在尝试从

开始安装帮助浏览器

http://www.walletfox.com/course/qhelpengineexample.php

for Line

tWidget->addTab(helpEngine->contentWidget(), tr("Contents"));

我收到错误消息

no known conversion from QHelpIndexWidget* to QWidget*

确实,如果我用

进行显式铸造
tWidget->addTab((QWidget*)helpEngine->contentWidget(), tr("Contents"));

该程序编译并运行良好。这里发生了什么?

您很可能忘记了#include <QHelpIndexWidget>

然后编译器无法扣除QHelpIndexWidgetQWidget继承。

如果您尝试访问QHelpIndexWidget*,例如

qDebug() << helpEngine->indexWidget()->objectName();

没有include,您将获得更好的编译器错误" qhelpindexwidget是不完整的类型"或类似的,这意味着该类型是向前声明的,但无法访问完整的声明。

>

此外,我建议避免使用C风格的铸件并改用static_cast<TYPE>(var)

相关内容

  • 没有找到相关文章

最新更新