zoukankan      html  css  js  c++  java
  • Qt QMainWindow的使用

    参考视频:黑马科技:https://www.bilibili.com/video/BV1XW411x7NU?p=19

    QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget)。

    本文主要介绍菜单栏、工具栏以及状态栏的使用。

    创建工程时,选择MainWindow

    以notepad++为例,我们需要实现菜单栏、工具栏、状态栏、核心控件,以及浮动窗口。

     

     创建之后的工程文件如下:

    其中,只有mainwindow.cpp我们需要改动,其它文件不需要改动它们。

    mainwindow.cpp中实现的代码如下:

     1 #include "mainwindow.h"
     2 #include <QMenuBar>
     3 #include <QMenu>
     4 #include <QAction>
     5 #include <QDebug>
     6 #include <QToolBar>
     7 #include <QPushButton>
     8 #include <QStatusBar>
     9 #include <QLabel>
    10 #include <QTextEdit>
    11 #include <QDockWidget>
    12 
    13 MainWindow::MainWindow(QWidget *parent)
    14     : QMainWindow(parent)
    15 {
    16     /* 1 添加菜单栏 */
    17     QMenuBar *mBar = menuBar();
    18     //添加菜单
    19     QMenu *pFile = mBar->addMenu("文件");
    20     //添加菜单项,添加动作
    21     QAction *pnew = pFile->addAction("新建");
    22     connect(pnew, &QAction::triggered,
    23         [=]()
    24         {
    25             qDebug() << "新建被按下";
    26         }
    27     );
    28     //添加分割线
    29     pFile->addSeparator();
    30     QAction *popen = pFile->addAction("打开");
    31 
    32     /* 2 添加工具栏,菜单栏的快捷方式 */
    33     QToolBar *toolBar = addToolBar("toolBar");
    34     //工具栏添加快捷键
    35     toolBar->addAction(pnew);
    36     QPushButton *b = new QPushButton(this);
    37     b->setText("按钮");
    38     //添加小控件
    39     toolBar->addWidget(b);
    40     connect(b, &QPushButton::clicked,
    41         [=]()
    42         {
    43             b->setText("唱歌");
    44         }
    45     );
    46 
    47     /* 3 添加状态栏 */
    48     QStatusBar *sbar = statusBar();
    49     QLabel *label = new QLabel(this);
    50     label->setText("normal text file");
    51     //从左往右添加
    52     sbar->addWidget(label);
    53     sbar->addWidget(new QLabel("2", this));
    54     //从右往左添加
    55     sbar->addPermanentWidget(new QLabel("3", this));
    56 
    57     /* 4 添加核心控件,文本编辑区 */
    58     QTextEdit *textEdit = new QTextEdit(this);
    59     setCentralWidget(textEdit);
    60 
    61     /* 5 浮动窗口 */
    62     QDockWidget *dock = new QDockWidget(this);
    63     addDockWidget(Qt::RightDockWidgetArea, dock);
    64     //给互动窗口添加控件
    65     QTextEdit *textEdit1 = new QTextEdit(this);
    66     dock->setWidget(textEdit1);
    67 }
    68 
    69 MainWindow::~MainWindow()
    70 {
    71 
    72 }
    View Code

    运行、进行测试:

     主要是要对各个控件,以及其使用方法比较熟悉才行,我也是才学习,只是跟着视频进行学习,不熟悉的地方可以通过查看帮助文档进行学习。

  • 相关阅读:
    C/C++语言void及void指针深层探索(转)
    Linux C++编程中的正则表达式使用范例
    正则表达式的基本概念和原理
    Web前端,高性能优化
    python爬虫练习2苏宁图书信息
    tensorflow鸢尾花分类
    在线编辑word文档 可保存到服务器
    如何取得DataGrid绑定列和模板列中的值
    ComponetOne C1WebChart使用精华
    C#多线程使用进度条
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/13137840.html
Copyright © 2011-2022 走看看