请教下对应的语法问题

durant 2009-11-25 12:40:18
QMenu *layoutMenu = menuBar()->addMenu(tr("Layout"));
其中 QMenuBar * QMainWindow::menuBar () const


请教下第一句对应的C++的语法结构,最好能给个例子

QAction *tile = new QAction(tr("tile"),this);

对this指针总是比较糊涂,请教下具体用法
...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
凡员外 2009-12-03
  • 打赏
  • 举报
回复
链接打不开
gemfield 2009-12-02
  • 打赏
  • 举报
回复
tr()方法可以实现qt支持的编码(UTF、gb-2312等)之间的翻译
dext 2009-11-27
  • 打赏
  • 举报
回复
tr 是和 Qt 的 国际特性有关,就是多语言。LZ 现在可以忽略它。
至于this 指针,楼主 贴代码,从来不贴函数 声明,只贴 一部分,我是没有法子告诉你具体内容的。
this 指针 不是 Qt 专有的,这是属于C++范畴,LZ可以看C++相关书籍。
ProgrammerNO1 2009-11-27
  • 打赏
  • 举报
回复
学习~~~
durant 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 winux 的回复:]
这里用到的语法就是函数调用和赋值。
menuBar()返回一个QMenuBar指针,再用这个指针调用它的addMenu函数,addMenu函数返回一个QMenu对象指针,这个指针赋给layoutMenu
[/Quote]

1 #include <QApplication>
2 #include <QLabel>
3 int main(int argc, char *argv[])
4 {
5 QApplication app(argc, argv);
6 QLabel *label = new QLabel("Hello Qt!");
7 label->show();
8 return app.exec();
9 }


QAction *tile = new QAction(tr("tile"),this);

请教下函数tr()的用法,以及什么时候用什么时候不用
durant 2009-11-27
  • 打赏
  • 举报
回复
LZ你的链接打不开
 QLineEdit *nameEd  = new QLineEdit(this);
QLabel *nameLb = new QLabel("&Name:", this);
nameLb->setBuddy(nameEd);
QLineEdit *phoneEd = new QLineEdit(this);
QLabel *phoneLb = new QLabel("&Phone:", this);
phoneLb->setBuddy(phoneEd);


void QLabel::setBuddy ( QWidget * buddy )中的示例,请问这里的this是怎么用的呢?
winux 2009-11-25
  • 打赏
  • 举报
回复
这里用到的语法就是函数调用和赋值。
menuBar()返回一个QMenuBar指针,再用这个指针调用它的addMenu函数,addMenu函数返回一个QMenu对象指针,这个指针赋给layoutMenu
dext 2009-11-25
  • 打赏
  • 举报
回复
不管是 QMainWindow 的 menuBar 还是 QLayout 的 menuBar
都指的是 我们常说的 菜单栏。一般 来说 是一个 在窗口标题下方的 矩形区域。
而,菜单 指的是 菜单栏 里的内容。

QMenu *layoutMenu = menuBar()->addMenu(tr("Layout"));

这句话 就是 在菜单栏里 添加一个菜单 菜单的内容叫做 Layout,(当然,你还可以添加子菜单)
虽然 我没有看 addMenu 的代码,但是 他是会调用到 QMenu 的构造函数的。

QMenu::QMenu ( QWidget * parent = 0 )
QMenu::QMenu ( const QString & title, QWidget * parent = 0 )

不管 是哪一个 构造函数,都有一个parent,在这个例子里,parent很可能是 menuBar
而 menuBar 的 parent 很可能是 QMainWindow 或 QLayout

至于这句
QAction *tile = new QAction(tr("tile"),this);
中的 this 是什么,取决于 你在哪里调用了这句。
this 指的就是 调用这句 所在的类的实例对象。
话虽然 说起来拗口,但是 就是这样。

给楼主一个 链接 有关 this 指针的。
http://hi.baidu.com/aifang9999/blog/item/cd901287ac44312dc65cc31b.html

16,211

社区成员

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

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