• 6078阅读
  • 4回复

[讨论]QWidget中添加QMenu问题 [复制链接]

上一主题 下一主题
离线tangxl
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-23

各位大侠,我想在一个QWidget中添加一个QMenu,代码如下,仿真出来却只有一个带标题窗口部件,却没有菜单,请问是怎么回事?
/***testmenu.h****/
#ifndef TESTMENU_H
#define TESTMENU_H
#include <QWidget>
#include <QMenu>
#include <QAction>
class Testmenu : public QWidget
{
    Q_OBJECT
public:
    Testmenu();
private:
    void createActions();
    void createMenus();
    QAction *newAction;
    QMenu *helpMenu;
};
#endif // TESTMENU_H
/***testmenu.cpp***/
#include "testmenu.h"
#include <QtGui>
Testmenu::Testmenu()
{
    QWidget *widget = new QWidget;
    void createActions();
    void createMenus();
}
void Testmenu::createActions()
{
    newAction = new QAction(QObject::tr("&About"),this);
   // connect(newAction,SIGNAL(triggered()),this,SLOT(Aboutmessage());)
}
void Testmenu::createMenus()
{
    helpMenu = new QMenu(this);
    helpMenu->addMenu(QObject::tr("&Help"));
    helpMenu->addAction(newAction);
    widget->helpMenu;
}
/***main.cpp***/
#include <QApplication>
#include "testmenu.h"
int main(int argc,char *argv[])
{
    QApplication app(argc, argv);
    Testmenu *menu = new Testmenu;
    menu->show();
    return app.exec();
}
离线陈小草
只看该作者 1楼 发表于: 2011-10-23
QMenuBar>QMenu>QAction

菜单得加在菜单条上,只有QMainWindow才有菜单条

不知道楼主的下行代码什么意思:
widget->helpMenu;

离线jdwx

只看该作者 2楼 发表于: 2011-10-23
回 楼主(tangxl) 的帖子
随便找一个QWidget,将下面代码放到构造函数里,试试。
QMenuBar *menubar = new QMenuBar(this);
    menubar->move(5,5);
    QMenu *menuFile = menubar->addMenu("File");
    menuFile->addAction("New");
    menuFile->addAction("Close");
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线陈小草
只看该作者 3楼 发表于: 2011-10-23
是我无知了

但:

new QMenuBar(this)方式加上去的菜单条像是补上去的一块疤

唯有this->menuBar()->addMenu("File")才完美
离线dbzhang800

只看该作者 4楼 发表于: 2011-10-23
引用第3楼陈小草于2011-10-23 10:50发表的  :
是我无知了
但:
new QMenuBar(this)方式加上去的菜单条像是补上去的一块疤
.......

http://blog.csdn.net/dbzhang800/article/details/6744650
快速回复
限100 字节
 
上一个 下一个