Qt学习笔记 (QMainWindow中的一些控件)

 QMainWindow
QMainWindow是一个为用户提供主窗口的类,包含一个菜单栏(menu bar) , 多个工具栏(tool bars) , 多个锚接部件(dock widgets)(浮动窗口),
一个状态栏(status bar) 及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。
状态栏在下边,中心部件在中间部分

#-------------------------------------------------
#
# Project created by QtCreator 2019-08-16T14:16:54
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = 01_QMainWindwo
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

重点: 

#include "mainwindow.h"
#include //任务栏
#include //工具栏
#include //状态栏
#include    //标签
#include 
#include 
//标签
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(600,400);
    //包含菜单栏,只能有一个
    QMenuBar *bar= menuBar();
    //将菜单栏放入窗口中
    this->setMenuBar(bar);
    //如果里边没有任何菜单,仍然不会显示

    //创建文件菜单 引用头文件
 //通过栏,添加一个菜单
   QMenu* fileMenu=bar->addMenu("文件");
   QMenu* editMenu=bar->addMenu("编辑");
   //有点小,改变一下大小

   //添加菜单项 菜单下边的小条条儿
   QAction* newAction = fileMenu->addAction("新建");
   //添加分割线,利用文件菜单添加的
   fileMenu->addSeparator();
   QAction* openAction = fileMenu->addAction("打开");
   //菜单栏只能有一个,不能有多个。


   //工具栏,可以有多个
   QToolBar * toolBar=new QToolBar(this);//指定父亲,this
   this->addToolBar(Qt::LeftToolBarArea,toolBar);//默认停靠范围设置成了左侧
   //在Qt中所有的宏,枚举基本上都是Qt::开头


   //工具栏创建完成后多了个小条
   //工具栏可以被拖走
   //不做修改工具栏默认在上侧,
   //值允许左右侧停靠
   toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
   //设置浮动
   toolBar->setFloatable(false);
   //设置移动(总开关)
   toolBar->setMovable(false);//动不了了
   //工具栏中可以加一些菜单项
   toolBar->addAction(newAction);
   toolBar->addSeparator();//添加分割线
   toolBar->addAction(openAction);


   //状态栏,在下侧展示,单词Statu
   QStatusBar *stBar = statusBar();
   this->setStatusBar(stBar);

   //六个点是状态栏,右下角
   QLabel *label1 = new QLabel("左侧 提示信息1",this);//加入childre表
   QLabel *label2 = new QLabel("右侧 提示信息2",this);//加入childre表
   //加入状态栏中
   //基本小的控件都是派生自QWidget
   stBar->addWidget(label1);//添加提示信息到左侧
   stBar->addPermanentWidget(label2);//添加提示信息到右侧
   //状态栏也只可以有一个

   //铆接部件 ,  浮动窗口 可以有多个
   QDockWidget * dock=new QDockWidget;
   //添加铆接部件到 窗口中
   this->addDockWidget(Qt::BottomDockWidgetArea,dock);//添加时都差不多,可以有默认停靠范围
   //这时候还没有核心部件
   //这时候他沾满了空余的空间,所以看起来是在上边,实际上是在下边的。
   //设置停靠范围
   dock->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);

   //添加核心部件,核心部件只能有一个
   QTextEdit * edit = new QTextEdit;//文本编辑框
   this->setCentralWidget(edit);

   //set的时候是只能设置一个控件
   //add的时候是可以添加多个控件




}

MainWindow::~MainWindow()
{

}

 

你可能感兴趣的:(Qt)