私はC++とQtを初めて使いました。私は本当にいくつかの助けに感謝します。私は、すべてのアプリ画面で一定のままになるメニューバーを追加したいと思います。私はmain関数にこれを追加すると、メニューバーには罰金を示しているが、私はこれが私の主な機能にはすべきではない知っている:QtのグローバルメニューQtMenuBarを使ったQt
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "form.h"
#include "menu.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QMenuBar *menu = new QMenuBar(0);
QMenu* menu1 = new QMenu("MENU1");
menu1->addMenu(new QMenu("menu1_SubMenu"));
QMenu* menu2 = new QMenu("MENU2");
menu2->addMenu(new QMenu("menu2_SubMenu"));
menu->addMenu(menu1);
menu->addMenu(menu2);
w.show();
return a.exec();
}
私は、メニューバーのためのクラスを作成する場合、それは表示されません。唯一の違いは、私は、メニュークラスのコンストラクタで、メニューのコードを配置し、main.cppにメニューからクラスをインスタンス化してきたということです。
main.cppに
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "form.h"
#include "menu.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
Menu m;
m.show();
w.show();
return a.exec();
}
menu.h
#ifndef MENU_H
#define MENU_H
#include <QMenuBar>
class Menu : public QMenuBar
{
Q_OBJECT
public:
Menu(QMenuBar *parent = 0);
};
#endif // MENU_H
menu.cpp
#include "menu.h"
Menu::Menu(QMenuBar *parent)
{
QMenuBar *menu = new QMenuBar(0);
QMenu* menu1 = new QMenu("MENU1");
menu1->addMenu(new QMenu("menu1_SubMenu"));
QMenu* menu2 = new QMenu("MENU2");
menu2->addMenu(new QMenu("menu2_SubMenu"));
menu->addMenu(menu1);
menu->addMenu(menu2);
}
私が間違って何をしているのですか?
あなたはまた)=セルゲイ、あなたが正しい –