#ifndef WIN_H
#define WIN_H
#include <qmainwindow.h>
class QAction;
class QPopupMenu;
class Mywin: public QMainWindow
{
??? Q_OBJECT
??? public:
??? Mywin(QWidget *parent=0,const char * name=0);
?? ?
??? private:
?????? void createActions();
?????? void createMenus();
?? ?
??? private slots:
?? ?void newFile();
?? ?
??? private:
?????? QAction *newAct;
?????? QPopupMenu *fileMenu;
};
#endif
#include "win.h"
#include <qapplication.h>
#include <qaction.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qmenubar.h>
Mywin::Mywin(QWidget *parent,const char * name):QMainWindow(parent,name)
{
?? createActions();?
?? createMenus();
}
void Mywin::createActions()
{
? newAct=new QAction(NULL,tr("&New"),0,this);
?// newAct->setStatusTip(tr("Create a new file"));
? connect(newAct,SIGNAL(activated()),this,SLOT(newFile()));
}
void Mywin::createMenus()
{#include "win.h"
#include <qapplication.h>
#include <qaction.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qmenubar.h>
Mywin::Mywin(QWidget *parent,const char * name):QMainWindow(parent,name)
{
?? createActions();?
?? createMenus();
}
void Mywin::createActions()
{
? newAct=new QAction(NULL,tr("&New"),0,this);
? connect(newAct,SIGNAL(activated()),this,SLOT(newFile()));
}
void Mywin::createMenus()
{
??? fileMenu=new QPopupMenu(this);
??? newAct->addTo(fileMenu);
???
???
??? menuBar()->insertItem(tr("&File"),fileMenu);
}
void Mywin::newFile()
{
??? QMessageBox::warning(this,tr("Hello"),tr("Hello \n World!"),QMessageBox::Yes|QMessageBox::Default,QMessageBox::No,QMessageBox::Cancel|QMessageBox::Escape);????
}
?
#include <qapplication.h>
#include "win.h"
int main(int argc,char* argv[])
{
???? QApplication app(argc,argv);
???? Mywin *mywin=new Mywin;
???? app.setMainWidget(mywin);
???? mywin->show();
??? return app.exec();
}
1
1 newAct=new QAction(NULL,tr("&New"),0,this);
? connect(newAct,SIGNAL(activated()),this,SLOT(newFile()));
? 建立一個菜單項,并將點擊信號連接到槽newFile()
2 fileMenu=new QPopupMenu(this);
? newAct->addTo(fileMenu);
? 建立一個菜單
3 menuBar()返回一個MenuBar
? menuBar()->insertItem(tr("&File"),fileMenu);
? 將菜單添加到MenuBar上.