继承QMenu问题

flight9 2013-04-13 02:53:45
继承了QMenu,在mouseReleaseEvent(QMouseEvent *e)函数中这样写:
const QMenuPrivate* d = reinterpret_cast<const QMenuPrivate*>(qGetPtrHelper(d_ptr));
d->updateActionRects();
编译错误,:undefined reference to `QMenuPrivate::updateActionRects() const'

问题我已经拿到QMenuPrivate* d,为何不能调用其函数?

而调用变量如d->actionRects倒是可以的,google了半天,大多讨论Q_D机制而没提到继承后d的调用问题。
...全文
267 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flight9 2013-04-20
  • 打赏
  • 举报
回复
没有满意答案,不浪费分,结贴
flight9 2013-04-13
  • 打赏
  • 举报
回复
引用 2 楼 jdwx1 的回复:
意思是QMenu的头文件里没有QMenuPrivate的定义。
已经#include "private/qmenu_p.h"了,具体QMenuPrivate的定义是在QMenu.cpp中。但不可能把这个cpp给#include进来。
引用 1 楼 heksn 的回复:
QMenuPrivate有源码吗 貌似缺少实现
是缺少实现,不过实现应该在QtGUI的某个DLL里,问题是编译时似乎他找不到。
jdwx 2013-04-13
  • 打赏
  • 举报
回复
意思是QMenu的头文件里没有QMenuPrivate的定义。
  • 打赏
  • 举报
回复
QMenuPrivate有源码吗 貌似缺少实现

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧