找回密码
 立即注册
收起左侧

为什么用qt实现菜单栏时程序异常结束呢?

4
回复
12761
查看
[复制链接]
累计签到:467 天
连续签到:1 天
来源: 2016-1-25 20:30:29 显示全部楼层 |阅读模式
1Qter豆
#ifndef WIDGET_H#define WIDGET_H
#include <QWidget>#include <QMenu>#include <QMenuBar>#include <QAction>class Widget : public QWidget{    Q_OBJECT
public:    Widget(QWidget *parent = 0);    ~Widget();private:    QMenu *menu[3];    QAction *act[2];    QMenuBar *menubar;
};
#endif // WIDGET_H
#include "widget.h"
Widget::Widget(QWidget *parent)    : QWidget(parent){    menu[0]=new QMenu("File",this);    menu[0]->addAction("Edit");    menu[0]->addAction("close");    menu[0]->addAction("save");    act[0]=new QAction("new",this);    act[0]->setShortcut(Qt::CTRL|Qt::Key_A);    act[0]->setStatusTip("this is a new menu");    act[1]=new QAction("Open",this);    act[1]->setCheckable(true);    menu[1]=new QMenu("save",this);    menu[1]->addAction(act[0]);    menu[1]->addAction(act[1]);    menu[2]=new QMenu("Print");    menu[2]->addAction("Page Setup");    menu[2]->addMenu(menu[1]);    menubar->addMenu(menu[2]);    menubar->addMenu(menu[0]);}
Widget::~Widget(){
}

#include "widget.h"#include <QApplication>
int main(int argc, char *argv[]){    QApplication a(argc, argv);    Widget w;    w.show();
    return a.exec();}调试信息:
Starting H:\C++\build-QMenu_QMenubar-Desktop_Qt_5_5_1_MinGW_32bit-Debug\debug\QMenu_QMenubar.exe...
程序异常结束。
H:\C++\build-QMenu_QMenubar-Desktop_Qt_5_5_1_MinGW_32bit-Debug\debug\QMenu_QMenubar.exe crashed




附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

menubar 还没 new 出来 加上 menubar = new QMenuBar(this);
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-25 20:30:30 显示全部楼层
menubar 还没 new 出来
加上 menubar = new QMenuBar(this);
回复

使用道具 举报

累计签到:1632 天
连续签到:2 天
2016-1-26 11:38:03 显示全部楼层
menu[0]不推荐用这样用啊。你直接定义三个QMenu指针,把程序改改。
回复

使用道具 举报

累计签到:467 天
连续签到:1 天
2016-1-26 15:13:49 显示全部楼层
shencj1234 发表于 2016-1-25 20:30
menubar 还没 new 出来
加上 menubar = new QMenuBar(this);

谢谢,这个问题居然没有发现
回复

使用道具 举报

累计签到:467 天
连续签到:1 天
2016-1-26 15:14:21 显示全部楼层
yafeilinux 发表于 2016-1-26 11:38
menu[0]不推荐用这样用啊。你直接定义三个QMenu指针,把程序改改。

谢谢,谢谢你的建议,在这里学了不少东西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了