• QT菜单栏,工具栏,状态栏


    1. 菜单栏

    用代码来实现菜单栏:

    头文件:mainwindow.h

    1. #ifndef MAINWINDOW_H
    2. #define MAINWINDOW_H
    3. #include
    4. QT_BEGIN_NAMESPACE
    5. namespace Ui { class MainWindow; }
    6. QT_END_NAMESPACE
    7. class MainWindow : public QMainWindow
    8. {
    9. Q_OBJECT
    10. public:
    11. MainWindow(QWidget *parent = nullptr);
    12. ~MainWindow();
    13. void craeteMenuBar(); //创建菜单栏
    14. void craeteToolBar(); //创建工具栏
    15. void craeteStatusBar(); //创建状态栏
    16. public slots:
    17. void clicknewMenuAction(); //选择新建文件触发的槽函数
    18. void clickopenMenuAction(); //选择打开文件触发的槽函数
    19. void clickcutToolbarAction(); //选择剪切工具项触发的槽函数
    20. void clickitalicToolbarAction();//选择斜体工具项触发的槽函数
    21. private:
    22. QMenu* m_menu;
    23. QAction* m_newMenu;
    24. QAction* m_openMenu;
    25. QToolBar* m_Toolbar;
    26. QAction* m_Action1;
    27. QAction* m_Action2;
    28. QAction* m_Action3;
    29. QAction* m_Action4;
    30. private:
    31. Ui::MainWindow *ui;
    32. };
    33. #endif // MAINWINDOW_H

    本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

    源文件:mainwindow.cpp

    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. #include <QMenu>
    4. #include <QToolBar>
    5. #include <QAction>
    6. #include <QMessageBox>
    7. #include <QDebug>
    8. #include <QLabel>
    9. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
    10. {
    11. ui->setupUi(this);
    12. craeteMenuBar();
    13. //craeteToolBar();
    14. //craeteStatusBar();
    15. }
    16. MainWindow::~MainWindow()
    17. {
    18. delete ui;
    19. }
    20. //创建菜单栏
    21. void MainWindow::craeteMenuBar()
    22. {
    23. //新增主菜单
    24. m_menu = menuBar()->addMenu(tr("文件"));
    25. //创建子菜单
    26. m_newMenu = new QAction(QIcon("://images/new.png"),tr("新建文件"),this);
    27. m_openMenu = new QAction(QIcon("://images/open.png"),tr("打开文件"),this);
    28. //设置打开文件动作的快捷键
    29. //newMenuAction->setShortcut("Ctrl + N");
    30. //openMenuAction->setShortcut("Ctrl + O");
    31. //设置打开文件动作的提示信息
    32. m_newMenu->setStatusTip(tr("这是新建文件的提示信息"));
    33. m_openMenu->setStatusTip(tr("这是打开文件的提示信息"));
    34. //把子菜单和父菜单关联
    35. m_menu->addAction(m_newMenu);
    36. m_menu->addAction(m_openMenu);
    37. //关联新建文件动作的信号和槽
    38. connect(m_newMenu,SIGNAL(triggered()),this,SLOT(clicknewMenuAction()));
    39. //关联打开文件动作的信号和槽
    40. connect(m_openMenu,SIGNAL(triggered()),this,SLOT(clickopenMenuAction()));
    41. }
    42. //选择新建文件触发的槽函数
    43. void MainWindow::clicknewMenuAction()
    44. {
    45. QMessageBox MyBox(QMessageBox::Question,"Title","newMenu的槽函数已触发!",QMessageBox::Yes | QMessageBox::No);
    46. MyBox.exec();
    47. }
    48. //选择打开文件触发的槽函数
    49. void MainWindow::clickopenMenuAction()
    50. {
    51. QMessageBox MyBox(QMessageBox::Question,"Title","openMenu的槽函数已触发!",QMessageBox::Yes | QMessageBox::No);
    52. MyBox.exec();
    53. }

    添加代码之后的运行效果如下:

     

    点击新建文件触发槽函数:

     

    2. 工具栏

    用代码来实现工具栏:

    头文件和菜单栏的一样就行

    源文件:mainwindow.cpp

    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. #include <QMenu>
    4. #include <QToolBar>
    5. #include <QAction>
    6. #include <QMessageBox>
    7. #include <QDebug>
    8. #include <QLabel>
    9. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
    10. {
    11. ui->setupUi(this);
    12. //craeteMenuBar();
    13. craeteToolBar();
    14. //craeteStatusBar();
    15. }
    16. //创建工具栏
    17. void MainWindow::craeteToolBar()
    18. {
    19. //方法1:构建工具栏
    20. //m_Toolbar = addToolBar("file");
    21. //方法2:构建工具栏
    22. m_Toolbar = new QToolBar(this);
    23. this->addToolBar(m_Toolbar);
    24. //构建工具栏选项
    25. m_Action1 = new QAction(QIcon("://images/cut.png"),tr("剪切"),this);
    26. m_Action2 = new QAction(QIcon("://images/italic.png"),tr("斜体"),this);
    27. m_Action3 = new QAction(tr("保存"),this);
    28. m_Action4 = new QAction(tr("退出"),this);
    29. //将工具栏选项添加到工具栏
    30. m_Toolbar->addAction(m_Action1);
    31. m_Toolbar->addAction(m_Action2);
    32. m_Toolbar->addAction(m_Action3);
    33. m_Toolbar->addAction(m_Action4);
    34. //动作连接槽函数
    35. connect(m_Action1, SIGNAL(triggered()), this, SLOT(clickcutToolbarAction()));
    36. connect(m_Action2, SIGNAL(triggered()), this, SLOT(clickitalicToolbarAction()));
    37. }
    38. //选择剪切工具项触发的槽函数
    39. void MainWindow::clickcutToolbarAction()
    40. {
    41. QMessageBox MyBox(QMessageBox::Question,"Title","cutToolBar的槽函数已触发!",QMessageBox::Yes | QMessageBox::No);
    42. MyBox.exec();
    43. }
    44. //选择斜体工具项触发的槽函数
    45. void MainWindow::clickitalicToolbarAction()
    46. {
    47. QMessageBox MyBox(QMessageBox::Question,"Title","italicToolBar的槽函数已触发!",QMessageBox::Yes | QMessageBox::No);
    48. MyBox.exec();
    49. }

    添加代码之后的运行效果如下:

     

    点击剪切触发槽函数:

     

    3. 状态栏

    用代码来实现状态栏:

    头文件和菜单栏的一样就行

    源文件:mainwindow.cpp

    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. #include <QMenu>
    4. #include <QToolBar>
    5. #include <QAction>
    6. #include <QMessageBox>
    7. #include <QDebug>
    8. #include <QLabel>
    9. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
    10. {
    11. ui->setupUi(this);
    12. //craeteMenuBar();
    13. //craeteToolBar();
    14. craeteStatusBar();
    15. }
    16. //创建状态栏
    17. void MainWindow::craeteStatusBar()
    18. {
    19. QLabel* label1 = new QLabel(tr("Label1"),this);
    20. QLabel* label2 = new QLabel(tr("Label2"),this);
    21. QLabel* label3 = new QLabel(tr("Label3"),this);
    22. statusBar()->addWidget(label1,1);
    23. statusBar()->addWidget(label2,1);
    24. statusBar()->addWidget(label3,1);
    25. }

    添加代码之后的运行效果如下:

    本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓ 

  • 相关阅读:
    日志瘦身方法论
    10 - Spring AOP介绍与使用
    如何实现在本地 Linux 主机上实现对企业级夜莺监控分析工具的远程连接
    神经网络推理速度的计算--GPU预热【附代码】
    计算机基础--Git
    AI 绘画极简教程
    C++模板
    十大靠谱“计算机视觉数据集”榜单
    linux-读写锁(rwlock)
    利用XXXXXXXXMIND管理。
  • 原文地址:https://blog.csdn.net/m0_60259116/article/details/127874762