天嵌 ARM开发社区

 找回密码
 注册
查看: 2166|回复: 4

关于QT中某些类的问题

[复制链接]
zhukx2010 发表于 2012-10-27 17:56:57 | 显示全部楼层 |阅读模式
大家好,我最近在参考Linux窗口程序设计—Qt4精彩实例分析上面的例子,在menu下添加按钮时用到了addAction,文章中用的方式是addAction(fileOpenAction),其中fileOpenAction是QAction*类型的,出现的问题是:qmenu.h中声明的addAction压根就没有以QAction*类型做参数的?这是什么原因啊?
我使用的是天嵌提供的QT4.5的qt creator做的,谢谢!
TQ-lkp 发表于 2012-10-27 18:00:36 | 显示全部楼层
本帖最后由 TQ-lkp 于 2012-10-27 18:01 编辑

qmenu.h中的定义
void addAction ( QAction * action )
例子:
openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
     openAct->setShortcuts(QKeySequence::Open);
     openAct->setStatusTip(tr("Open an existing file"));
     connect(openAct, SIGNAL(triggered()), this, SLOT(open()));

     fileMenu->addAction(openAct);
     fileToolBar->addAction(openAct);

 楼主| zhukx2010 发表于 2012-10-27 18:20:48 | 显示全部楼层
TQ-lkp 发表于 2012-10-27 18:00
qmenu.h中的定义
void addAction ( QAction * action )
例子:

但是我在这个头文件下没有找到这个定义啊,跟版本有关系吗?我用的都是天嵌提供的 啊
 楼主| zhukx2010 发表于 2012-10-27 18:32:58 | 显示全部楼层
TQ-lkp 发表于 2012-10-27 18:00
qmenu.h中的定义
void addAction ( QAction * action )
例子:

我在我的这个qmenu.h文件中找到的关于addAction的定义就下面几个:

QAction *addAction(const QString &text);
    QAction *addAction(const QIcon &icon, const QString &text);
    QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequence &shortcut = 0);
    QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member, const QKeySequence &shortcut = 0);
没有你说的这个:(
TQ-lkp 发表于 2012-10-29 11:12:52 | 显示全部楼层
本帖最后由 TQ-lkp 于 2012-10-29 11:14 编辑

qmenu.h

#ifdef Q_NO_USING_KEYWORD
    inline void addAction(QAction *action) { QWidget::addAction(action); }
#else
    using QWidget::addAction;
#endif
    QAction *addAction(const QString &text);
    QAction *addAction(const QIcon &icon, const QString &text);
    QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequence &shortcut = 0);
    QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member, const QKeySequence &shortcut = 0);


测试通过的例子:
       QMenu *file = menuBar()->addMenu(trUtf8("文件"));
        QAction *newAct = new QAction(trUtf8("新建"), this);
        newAct->setShortcuts(QKeySequence::New);
        newAct->setStatusTip(trUtf8("新建文件"));
        connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
        file->addAction(newAct);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-11-1 07:14 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表