(1)
(2)对应上图的代码如下 :
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QAction * action_Open;
QAction * action_Save;
QAction * action_undo;
QAction * action_redo;
QAction * action_Bold ;
QAction * action_Italic ;
QAction * action_Underline;
QWidget * centralwidget ;
QVBoxLayout * verticalLayout;
QPushButton * pushButton ;
QStatusBar * statusbar;
QToolBar * toolBar ;
QMenuBar * menubar ;
QMenu * menu_F ;
QMenu * menu_E ;
QMenu * menu_Format_BIU; //二级菜单的名字
void setupUi(QMainWindow * MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(263, 108);
action_Open = new QAction(MainWindow); //这一段是生成打开按钮
action_Open->setObjectName(QString::fromUtf8("action_Open"));
action_Open->setCheckable(false);
action_Open->setChecked (false);
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/images/001.GIF"),
QSize(), QIcon::Normal, QIcon::Off);
action_Open->setIcon(icon);
QFont font;
action_Open->setFont(font);
action_Open->setMenuRole(QAction::NoRole);
action_Open->setIconVisibleInMenu(true);
action_Save = new QAction(MainWindow); //这一段是生成保存按钮
action_Save->setObjectName(QString::fromUtf8("action_Save"));
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/icons/images/104.bmp"),
QSize(), QIcon::Normal, QIcon::Off);
action_Save->setIcon(icon1);
action_Save->setMenuRole(QAction::NoRole); //此属性只对 macOS有用,略
action_Bold = new QAction(MainWindow); //这一段是生成粗体按钮
action_Bold->setObjectName(QString::fromUtf8("action_Bold"));
action_Bold->setCheckable(true);
action_Bold->setChecked(true);
QIcon icon2;
icon2.addFile(QString::fromUtf8(":/icons/images/500.bmp"),
QSize(), QIcon::Normal, QIcon::Off);
action_Bold->setIcon(icon2);
action_Bold->setMenuRole(QAction::NoRole);
action_Bold->setPriority(QAction::LowPriority);
action_Italic = new QAction(MainWindow); //这一段是生成斜体按钮
action_Italic->setObjectName(QString::fromUtf8("action_Italic"));
action_Italic->setCheckable(true);
QIcon icon3;
icon3.addFile(QString::fromUtf8(":/icons/images/502.bmp"),
QSize(), QIcon::Normal, QIcon::Off);
action_Italic->setIcon(icon3);
action_Italic->setMenuRole(QAction::NoRole);
action_Underline = new QAction(MainWindow); //这一段是生成下划线按钮
action_Underline->setObjectName(QString::fromUtf8("action_Underline"));
action_Underline->setCheckable(true);
QIcon icon4;
icon4.addFile(QString::fromUtf8(":/icons/images/504.bmp"),
QSize(), QIcon::Normal, QIcon::Off);
action_Underline->setIcon(icon4);
action_Underline->setMenuRole(QAction::NoRole);
action_undo = new QAction(MainWindow); //这一段是生成撤销按钮
action_undo->setObjectName(QString::fromUtf8("action_undo"));
action_undo->setCheckable(true);
QIcon icon5;
icon5.addFile(QString::fromUtf8(":/icons/images/206.bmp"),
QSize(), QIcon::Normal, QIcon::Off);
action_undo->setIcon(icon5);
action_undo->setMenuRole(QAction::NoRole);
action_redo = new QAction(MainWindow); //这一段是生成重做按钮
action_redo->setObjectName(QString::fromUtf8("action_redo"));
QIcon icon6;
icon6.addFile(QString::fromUtf8(":/icons/images/208.bmp"),
QSize(), QIcon::Normal, QIcon::Off);
action_redo->setIcon(icon6);
action_redo->setMenuRole(QAction::NoRole);
centralwidget = new QWidget(MainWindow); //创建了一个 QWidget对象
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
//哦,该对象就是以前章节里老师讲的 QWidget,这里作为了中心窗体
verticalLayout = new QVBoxLayout(centralwidget); //中心窗体采用垂直布局
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
pushButton = new QPushButton(centralwidget); //给中心窗体添加一个按钮
pushButton->setObjectName(QString::fromUtf8("pushButton"));
verticalLayout->addWidget(pushButton); //把按钮加入中心窗体
MainWindow->setCentralWidget(centralwidget); //接收中心窗体
menubar = new QMenuBar(MainWindow); //先生成菜单栏
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 263, 18)); //设置菜单栏的大小
menu_F = new QMenu(menubar); //生成文件菜单
menu_F->setObjectName(QString::fromUtf8("menu_F"));
menu_E = new QMenu(menubar); //生成编辑菜单
menu_E->setObjectName(QString::fromUtf8("menu_E"));
menu_E->setSeparatorsCollapsible(false);
menu_E->setToolTipsVisible(false);
menu_Format_BIU = new QMenu(menu_E); //生成 BIU子菜单,注意其参数
menu_Format_BIU->setObjectName(QString::fromUtf8("menu_Format_BIU"));
MainWindow->setMenuBar(menubar); //把菜单栏加入本窗体程序
statusbar = new QStatusBar(MainWindow); //生成状态栏
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar); //把状态栏加入本窗体程序
toolBar = new QToolBar(MainWindow); //生成工具栏
toolBar->setObjectName(QString::fromUtf8("toolBar"));
toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); //图上字下样式
MainWindow->addToolBar(Qt::TopToolBarArea, toolBar); //把工具栏加入本窗体程序
menubar->addAction(menu_F->menuAction()); //为菜单栏添加两个菜单
menubar->addAction(menu_E->menuAction());
menu_F->addAction(action_Open); //为文件菜单添加菜单项
menu_F->addAction(action_Save);
menu_E->addAction(action_undo); //为编辑菜单添加菜单项
menu_E->addAction(action_redo);
menu_E->addSeparator(); //添加了一个分隔符
menu_E->addAction(menu_Format_BIU->menuAction()); //!!重要:为菜单添加子菜单
// QAction * QMenu::menuAction() const;
menu_Format_BIU->addAction(action_Bold ); //为子菜单添加菜单项
menu_Format_BIU->addAction(action_Italic );
menu_Format_BIU->addAction(action_Underline);
toolBar->addAction(action_Open); //为工具栏添加按钮
toolBar->addAction(action_Save);
toolBar->addSeparator();
toolBar->addAction(action_undo);
toolBar->addAction(action_redo);
toolBar->addSeparator();
toolBar->addAction(action_Bold);
toolBar->addAction(action_Italic);
toolBar->addAction(action_Underline);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow); //允许通过函数名字来连接信号与槽
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow ->setWindowTitle(
QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
action_Open->setText(
QCoreApplication::translate("MainWindow",
"\350\217\234\345\215\225\346\211\223\345\274\200", nullptr));
action_Open->setIconText(
QCoreApplication::translate("MainWindow",
"\345\267\245\345\205\267\346\211\223\345\274\200", nullptr));
action_Open->setToolTip(
QCoreApplication::translate("MainWindow",
"\346\217\220\347\244\272\346\211\223\345\274\200", nullptr));
action_Open->setShortcut(
QCoreApplication::translate("MainWindow", "Ctrl+O", nullptr));
action_Save->setText(
QCoreApplication::translate("MainWindow",
"\344\277\235\345\255\230", nullptr));
action_Save->setToolTip(
QCoreApplication::translate("MainWindow",
"\346\217\220\347\244\272\344\277\235\345\255\230", nullptr));
action_Save->setStatusTip(
QCoreApplication::translate("MainWindow",
"\347\212\266\346\200\201\346\240\217\347\232\204\346\233\264"
"\351\225\277\347\232\204\346\217\220"
"\347\244\272\350\257\215", nullptr));
action_Save->setWhatsThis(
QCoreApplication::translate("MainWindow",
"\345\270\256\345\212\251help\346\226\207\346\234\254\351\207"
"\214\347\232\204\345\206\205\345\256\271", nullptr));
action_Save->setShortcut(
QCoreApplication::translate("MainWindow", "Ctrl+S", nullptr));
action_Bold->setText(
QCoreApplication::translate("MainWindow",
"\347\262\227\344\275\223", nullptr));
action_Bold->setToolTip(
QCoreApplication::translate("MainWindow",
"\346\217\220\347\244\272\347\262\227\344\275\223", nullptr));
action_Italic->setText(
QCoreApplication::translate("MainWindow",
"\346\226\234\344\275\223", nullptr));
action_Underline->setText(
QCoreApplication::translate("MainWindow",
"\344\270\213\345\210\222\347\272\277", nullptr));
action_Underline->setToolTip(
QCoreApplication::translate("MainWindow",
"\346\217\220\347\244\272\344\270\213"
"\345\210\222\347\272\277", nullptr));
action_undo->setText(
QCoreApplication::translate("MainWindow", "\346\222\244\351\224\200", nullptr));
action_undo->setToolTip(
QCoreApplication::translate("MainWindow",
"\346\217\220\347\244\272\346\222\244\351\224\200", nullptr));
action_undo->setShortcut(
QCoreApplication::translate("MainWindow", "Ctrl+Z", nullptr));
action_redo->setText(
QCoreApplication::translate("MainWindow", "\351\207\215\345\201\232", nullptr));
action_redo->setToolTip(
QCoreApplication::translate("MainWindow",
"\346\217\220\347\244\272\351\207\215\345\201\232", nullptr));
action_redo->setShortcut(
QCoreApplication::translate("MainWindow", "Ctrl+Y", nullptr));
pushButton->setText(
QCoreApplication::translate("MainWindow", "PushButton", nullptr));
menu_F->setTitle(
QCoreApplication::translate("MainWindow", //设置菜单的名字,以及快捷键
"\346\226\207\344\273\266(&F)", nullptr));
menu_E->setTitle(QCoreApplication::translate("MainWindow",
"\347\274\226\350\276\221(&E)", nullptr));
menu_Format_BIU->setTitle( //这是那个二级菜单BIU
QCoreApplication::translate("MainWindow",
"\346\226\207\346\234\254\346\240\274\345\274\217", nullptr));
toolBar->setWindowTitle( //工具栏的 title属性,不必要,也看不见
QCoreApplication::translate("MainWindow", "toolBar", nullptr));
} // retranslateUi
}; //完结 class Ui_MainWindow
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
(3)上面的例子里没有涉及往工具栏里添加控件,比如螺旋框,这里再补充一下 :
(4)
谢谢