当前位置: 代码迷 >> QT开发 >> 新手 qt有关问题 求帮忙
  详细解决方案

新手 qt有关问题 求帮忙

热度:161   发布时间:2016-04-25 03:05:58.0
新手 qt问题 求帮忙
QMenu *manageMenu;
manageMenu= menubar()->addMenu(tr("文件"));

这句话的意思我懂 大概就是往主窗口中加入文件菜单。
我不明白的是menubar()是个函数并非类或结构体,为什么后面还可以用"."或者"->"的符号?menubar()和addMenu()这两个函数之间是什么关系呀?函数也可以有成员函数吗?manageMenu得到的是哪个函数的返回值?

请高手给说说 万分感谢 
祝您工作顺利
------解决思路----------------------
QMenu *manageMenu=new QMenu () ;
manageMenu= menubar()->addMenu(tr("文件"));
这样吧!或者
QMenu manageMenu;
manageMenu= menubar().addMenu(tr("文件"));

因为它是一个类!继承自QObject 。而menubar()是父类的一个具体对象(或类),基于最基本的函数指针(和 常量指针一个性质),最后继承爷爷类的方法addMenu(tr("文件"));
------解决思路----------------------
这只是基于我本身的理解,不一定对!但是应该差不了多少吧-.-!
------解决思路----------------------
引用:
QMenu *manageMenu;
manageMenu= menubar()->addMenu(tr("文件"));

这句话的意思我懂 大概就是往主窗口中加入文件菜单。
我不明白的是menubar()是个函数并非类或结构体,为什么后面还可以用"."或者"->"的符号?menubar()和addMenu()这两个函数之间是什么关系呀?函数也可以有成员函数吗?manageMenu得到的是哪个函数的返回值?

请高手给说说 万分感谢 
祝您工作顺利


这就是一个普通的成员函数,返回一个QMenuBar的指针。
QMenuBar *bar = menubar();
QMenu *manageMenu;
manageMenu= bar->addMenu(tr("文件"));

建议补补C++基础

  相关解决方案