在菜单栏中,比如:
我们要添加很多像新建,打开,粘贴,复制,加粗,下划线的动作,所以首先我们需要添加一些头文件:
#include <QMainWindow>
#include"mychild.h"
#include<QtWidgets>
//添加相关头文件---用于打印等操作
#include<QPrintDialog>
#include<QPrinter>
#include<QPrintPreviewDialog>
在使用QPaintDialog的时候要在pro文件里添加:不然会报错
QT +=printsupport
还要添加菜单类,动作类,下拉框类等:
class MyChild;
class QAction;//被创建后必须将它添加到菜单和工具栏,然后将它连接到实现action功能的槽函数才能实现
class QMenu;//菜单栏--挂载到菜单栏里面的QMenuBar(容器)上面的的
class QComboBox;//选项列表(组合框)
class QFontComboBox;//字体下拉列表框(不能被编辑的,只是用来选择字体)
class QMidArea;//提供一个同时显示多个文档容器区域
class QMdiSubWindow;//大多数复杂项目软件,都是使用MDI框架,QMdiArea用于主容器中,用于容纳多个子窗口QMdiSubWindo
class QSignalMapper;//信号映射器,它可以实现对多个子窗口部件的相同信号进行映射,首先为其添加字符串或者数值参数,然后在发送出去。
如下图所示:当我们点击文件的时候,会有如下选项,每一个选项对应一个函数的实现:
protected:
void closeEvent(QCloseEvent *event);//通过参数来控制是否让窗口关闭
private:
void fileNew();//新建
void fileOpen();//打开
void fileSave();//保存
void fileSaveAs();//另存为
void filePrintfPreview();//打印预览
void printPreview();//打印
void undo();//撤销
void redo();//重做
void cut();//剪切
void copy();//复制
void paste();//粘贴
void about();//关于
void textBold();//加粗
void textIalic();//倾斜
void textUnderline();//下划线
void textAlign(QAction *a);//设置段落对齐格式
void textStyle(int styleIndex);//设置段落的风格
void textFamily(const QString &f);//字体选择框
void textSize(const QString &p);//字号
void textColor();//设置字体颜色
void updateMenus();//更新菜单
void updateWindowMenu(); //更新窗口菜单
void setActiveSubWindow(QWidget *window);
MyChild *createMyChild();//创建子窗口
private:
void createActions();//创建菜单操作
void createMenus();//创建菜单
void createToolBars();//创建工具条
void createStatusBar();//创建状态条
void enabledText();
void fontChanged(const QFont &f);
void colorChanged(const QColor &c);
void alignmentChange(Qt::Alignment a);
MyChild* activeMyChild();
QMdiSubWindow *findMyChild(const QString &filename);
QMdiArea *mdiArea;//多文档窗口管理器
QSignalMapper *windowMapper;
在菜单栏中我们又会有如下选项:
//定义菜单
QMenu *fileMenu;//文件菜单
QMenu *editMenu;//编辑菜单
QMenu *formatMenu;//格式菜单
QMenu *fontMenu;//字体子菜单
QMenu *alignMenu;//段落子菜单
QMenu *windowMenu;//窗口菜单
QMenu *helpMenu;//帮助菜单
工具栏:
//工具栏
QToolBar *fileToolBar;//"文件"工具条
QToolBar *editToolBar;//"编辑"工具条
QToolBar *formatToolBar;//"格式"工具条
QToolBar *comboToolBar;//组合框选择栏
QComboBox *comboStyle;//子控件-标准组合框
QFontComboBox *comboFont;//子控件,字体组合框
QComboBox *comboSize;//子控件:字体大小组合框
菜单动作:
//菜单动作(ACtion)
QAction *newAct;//新建
QAction *openAct;//打开
QAction *saveAct;//保存
QAction *saveAsAct;//另存为
QAction *printAct;//打印
QAction *printPreviewAct;//打印预览
QAction *exitAct;//退出
编辑主菜单:
//【编辑】主菜单
QAction *undoAct;//撤销
QAction *redoAct;//重做
QAction *cutAct;//剪切
QAction *copyAct;//复制
QAction *pasteAct;//粘贴
格式菜单:
//【格式】主菜单
QAction *boldAct;//加粗
QAction *italicAct;//倾斜
QAction *underlineAct;//下划线
QAction *leftAlignAct;//左对齐
QAction *centerAct;//居中
QAction *rightAlignAct;//右对齐
QAction *justifyAct;//两端对齐
QAction *colorAct;//颜色
窗口主菜单:
//【窗口】主菜单
QAction *closeAct;//关闭
QAction *closeAllAct;//关闭所有
QAction *tileAct;//平铺
QAction *cascadeAct;//层叠
QAction *nextAct;//下一个
QAction *previousAct;//前一个
QAction *separatorAct;//
以及最后的帮助:
//【帮助】主菜单
QAction *aboutAct;//关于本软件
QAction *aboutQtAct;//关于Qt
可以根据不同的情况自己定义。
感谢阅读!!!