• 5985阅读
  • 4回复

鼠标右键菜单没显示出来 [复制链接]

上一主题 下一主题
离线浪迹江湖
 

只看楼主 正序阅读 楼主  发表于: 2011-05-23
大家好,我想在点鼠标右键时让窗体显示右键菜单,可是什么都不显示,
完整代码如下,大侠们看看什么地方有问题,谢谢
#include <QtGui>

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);

        QWidget *cb = new QWidget();
        cb->insertAction(0, &QAction(QString("Clear"), cb));
        cb->insertAction(0, &QAction(QString("oad"), cb));
        cb->insertAction(0, &QAction(QString("load"), cb));
        cb->setContextMenuPolicy(Qt::ActionsContextMenu);
        cb->show();

        return app.exec();
}
离线浪迹江湖

只看该作者 4楼 发表于: 2011-05-23
引用第3楼dbzhang800于2011-05-23 16:13发表的  :
呵呵,找本C或C++的书看看吧。你用的临时变量。函数调用结束时,它就被销毁了。

谢谢dbzhang800,以前C++没学好,惭愧啊
离线dbzhang800

只看该作者 3楼 发表于: 2011-05-23
呵呵,找本C或C++的书看看吧。你用的临时变量。函数调用结束时,它就被销毁了。
离线浪迹江湖

只看该作者 2楼 发表于: 2011-05-23
引用第1楼dbzhang800于2011-05-23 15:56发表的  :
因为你的3个QAction在你
        cb->setContextMenuPolicy(Qt::ActionsContextMenu);
之前就已经不存在了!
.......

我把代码位置移下,还是不管用,修改还代码如下:

#include <QtGui>

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);

        QWidget *cb = new QWidget();
        cb->setContextMenuPolicy(Qt::ActionsContextMenu);

        cb->addAction(&QAction(QString("Clear"), cb));
        cb->addAction(&QAction(QString("oad"), cb));
        cb->addAction(&QAction(QString("load"), cb));
        cb->show();

        return app.exec();
}
离线dbzhang800

只看该作者 1楼 发表于: 2011-05-23
因为你的3个QAction在你

        cb->setContextMenuPolicy(Qt::ActionsContextMenu);

之前就已经不存在了!

建议:找本C或C++的书多看看
快速回复
限100 字节
 
上一个 下一个