《二》菜单模块设计实现---添加动作函数等

在菜单栏中,比如:

我们要添加很多像新建,打开,粘贴,复制,加粗,下划线的动作,所以首先我们需要添加一些头文件:

#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 slots:
    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

可以根据不同的情况自己定义。

感谢阅读!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值