qt parent疑问

yb0824 2009-11-09 02:50:20
一下是qt demo 里一段代码,为什么要循环才能取得parent呢,创建的时候不是指定了吗
BrowserMainWindow *WebPage::mainWindow()
{
QObject *w = this->parent();
while (w) {
if (BrowserMainWindow *mw = qobject_cast<BrowserMainWindow*>(w))
return mw;
w = w->parent();
}
return BrowserApplication::instance()->mainWindow();
}
...全文
145 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yb0824 2009-11-09
  • 打赏
  • 举报
回复
我是这样想的,比如我再mainWindow得构造函数里创建一个WebPage对象 WebPage* webPage = new WebPage( this ); 这里不是指定了webPage的parent了么,那么在webPage里调用this->parent()不是直接得到mainWindow呢
chenzhp 2009-11-09
  • 打赏
  • 举报
回复
所以,继续轮询,知道这个对象可以被转换
chenzhp 2009-11-09
  • 打赏
  • 举报
回复
需要检测当前这个实例是否可以转换为BrowserMainWindow对象,如果不行,那说明BrowserMainWindow不是由QObject继承下来的。
perhaps......

16,202

社区成员

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

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