#include "mainwindow.h" #include #include /*-------------------------*/ #include // 菜单栏 #include // 菜单 #include // 菜单项 #include /*-------------------------*/ #include // 工具栏 /*-------------------------*/ #include // 状态栏 /*-------------------------*/ #include // 铆接部件 /*-------------------------*/ #include // 核心部件: 编辑器 /*-------------------------*/ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // 第一部分: 5.1 菜单栏 //**********窗口属性设置***************** this->setWindowTitle("主窗口"); this->setFixedSize(800, 600); //***********创建菜单栏****************** //创建菜单栏 //注意:如果只有菜单栏,则在窗口处没有现象 QMenuBar *menu_bar = new QMenuBar(this); this->setMenuBar(menu_bar); // 创建菜单 QMenu *menu1 = new QMenu("文件",this); menu_bar->addMenu(menu1); QMenu *menu2 = new QMenu("编辑",this); menu_bar->addMenu(menu2); QMenu *menu3 = new QMenu("构建",this); menu_bar->addMenu(menu3); // 创建菜单项 QAction *act1 = new QAction("新建文件或项目",this); menu1->addAction(act1); QAction *act2 = new QAction("打开文件或项目",this); menu1->addAction(act2); // 添加分隔线 menu1->addSeparator(); QAction *act3 = new QAction("保存", this); menu1->addAction(act3); QAction *act4 = new QAction("另存为", this); menu1->addAction(act4); QAction *act5 = new QAction("复制", this); act5->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_C)); // 绑定快捷键 menu2->addAction(act5); QAction *act6 = new QAction("粘贴", this); act6->setShortcut(QKeySequence(tr("Ctrl+V"))); menu2->addAction(act6); QAction *act7 = new QAction("剪切", this); menu2->addAction(act7); // 当单机菜单项时,做出相应的处理 connect(act5,&QAction::triggered,[=]()->void{ qDebug()<<"复制正在执行"; }); connect(act6,&QAction::triggered,[=]()->void{ qDebug()<<"粘贴正在执行"; }); // 第二部分: 5.2 工具栏 //创建工具栏 //注意:工具栏可以添加多个 QToolBar *toolbar = new QToolBar(this); //将工具栏添加到窗口 // this->addToolBar(toolbar);//默认在最上面显示 this->addToolBar(Qt::LeftToolBarArea, toolbar); //设置默认在左边显示 //工具栏添加菜单项和分割线 QAction *act_tool1 = new QAction("欢迎", this); QAction *act_tool2 = new QAction("编辑", this); toolbar->addAction(act_tool1); toolbar->addSeparator(); toolbar->addAction(act_tool2); //设置工具栏的浮动状态,true:可以悬浮在窗口 false:不可以 toolbar->setFloatable(true); //设置运行工具栏的位置,设置为左边或者右边 toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea | Qt::TopToolBarArea | Qt::BottomToolBarArea); // 第三部分: 5.3 状态栏 //创建状态栏 //状态栏只能有一个 QStatusBar *statusbar = new QStatusBar(this); //添加状态栏 this->setStatusBar(statusbar); //给状态栏中添加文字信息或者按钮= QLabel *label1 = new QLabel("左边信息", this); statusbar->addWidget(label1); QLabel *label2 = new QLabel("右边信息", this); statusbar->addPermanentWidget(label2); QPushButton *button = new QPushButton("设置", this); statusbar->addWidget(button); // 第四部分: 5.4 铆接部件 QDockWidget,也称浮动窗口,可以有多个。 //创建铆接部件 QDockWidget *dockwidget = new QDockWidget("这是一个铆接部件", this); this->addDockWidget(Qt::TopDockWidgetArea, dockwidget); // 第五部分: 5.5 核心部件(中心部件) // 除了以上几个部件,中心显示的部件都可以作为核心部件,例如一个记事本文件,可以利用QTextEdit 做核心部件 QTextEdit *edit = new QTextEdit("文本编辑器", this); this->setCentralWidget(edit); } MainWindow::~MainWindow() { }