• 5320阅读
  • 8回复

[提问]谁能帮我解释下这一段代码啊 [复制链接]

上一主题 下一主题
离线zacharychau
 

只看楼主 倒序阅读 楼主  发表于: 2012-09-05
谁能帮我解释下这一段代码啊
void MainWindow::openRecentFile()
{
if (okToContinue())
{
QAction *action = qobject_cast<QAction *>(sender());   主要是这一句,理解力有点差噢!!
if (action)
loadFile(action -> data().toString());
}
}


离线alexltr

只看该作者 1楼 发表于: 2012-09-05
《C++ GUI Qt 4编程》(第2版)  第49也有详细的解释
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线XChinux

只看该作者 2楼 发表于: 2012-09-05
找出是谁发出的这个信号。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线zacharychau

只看该作者 3楼 发表于: 2012-09-08
回 2楼(XChinux) 的帖子
这里为什么一定要用个容器类呢?这一点还有点模糊...还有前面的对象名,为什么有时用指针?有些时候对象名又不用指针啊?谢谢了...
离线roywillow

只看该作者 4楼 发表于: 2012-09-08
回 3楼(zacharychau) 的帖子
容器类?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线zacharychau

只看该作者 5楼 发表于: 2012-09-08
回 4楼(roywillow) 的帖子
嗯哪...为什么那一句要用容器类来实现啊??这Qt感觉要搞懂还是不容易啊...我初学的,见谅哈!
离线jdwx

只看该作者 6楼 发表于: 2012-09-08
回 5楼(zacharychau) 的帖子
QAction *action = qobject_cast<QAction *>(sender());

QAction *action;
QObject *object;
object = sender();
action = qobject_cast<QAction *>(object);//就是转换QObject类型到QAction类型。
基本上理解成action = (QAction*)object就可以了。
qobject_cast和上面的代码区别是:如果object不是QAction类型,返回0.
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线zacharychau

只看该作者 7楼 发表于: 2012-09-09
回 6楼(jdwx) 的帖子
现在懂了 ,非常感谢哈...论坛里有你们这些大哥真好,望以后大家多多赐教哈!好的学习方法也可以传授下啊,刚学Qt,稀里糊涂的!
离线weinkym

只看该作者 8楼 发表于: 2012-09-11
都去看看《C++ GUI Qt 4编程》(第2版)
快速回复
限100 字节
 
上一个 下一个