QT学习之③菜单以及工具栏创建设置以及部分MainWindow基类部件

QT学习之③菜单以及工具栏创建设置以及部分MainWindow基类的部件

  • ~QQ:3020889729
  • ~小蔡
  • Mainwindow类部分部件
  • 对给出的部件函数(方法)解析
    • QMenuBar(包含菜单栏/菜单)
      • QMenuBar
      • QMenu
      • QAction
    • QToolBar(包含工具栏)
    • QPushButton(包含控件,可为为工具栏添加控件)
    • QLabel(包含标签)
    • QStatusBar(包含状态栏)
    • QDockWidget(包含铆接部件)
    • QTextEdit(包含文本编辑部件)
  • 核心部件
  • 总结

~QQ:3020889729

~小蔡

我的是一步一步去设计的,没有依赖创建界面来设计。

Mainwindow类部分部件

#include //提供菜单栏,菜单部件
#include //提供工具栏部件
#include //提供控件部件
#include //提供状态栏部件
#include //提供标签部件
#include //提供铆接部件
#include //提供文本编辑部件

对给出的部件函数(方法)解析

QMenuBar(包含菜单栏/菜单)

QMenuBar

1.提供菜单栏:menuBar()方法

//菜单栏只能有一个
//创建菜单栏对象
QMenuBar* bar = menuBar();//定义一个指针对象指向 QMenuBar下的menubar方法返回值

2.提供菜单栏停靠:setMenuBar()方法

//函数直接调用,参数为菜单栏对象
setMenuBar(bar);//挂在到当前窗口的菜单栏是bar

QMenu

1.提供菜单对象:QMenu* openMenu

//添加菜单名字(从0到……)/如具体软件中的文件(F)
QMenu* openMenu= bar->addMenu("文件");//创建菜单对象——赋值为当前菜单栏成员函数addMenu的返回值==菜单
//addMenu为菜单栏下的方法调用后的返回函数值给创建的openMenu对象
//可直接显示

2.提供菜单分割线:addSeparator()方法

openMenu->addSeparator();//在此菜单后添加分割线

QAction

1.提供菜单项对象:QAction* NewAction

//添加菜单项——即对添加的菜单添加响应
QAction* NewAction = fileMenu->addAction("新建");
//addAction为菜单提供的方法,返回的值赋给创建的NewAction对象

QToolBar(包含工具栏)

1.提供菜单栏对象:QToolBar* tool_bar

//实例化,地址为当前类——也就是拼接到了这个类为父类的对象树中
QToolBar* tool_bar = new QToolBar(this);

2.提供窗口显示函数:addToolBar()

 //挂载到当前类(窗口)下_添加工具栏到窗口
//addToolBar(tool_bar);//直接这样设置的话——默认开始在最上方(菜单栏下)
 addToolBar(Qt::LeftToolBarArea,tool_bar);//固定位置

3.提供显示范围限定函数:setAllowedAreas()

//设置工具栏允许停靠的范围_只允许左右
tool_bar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

4.提供工具栏浮动控制函数:setFloatable()

//设置浮动:
//默认菜单栏拖拽时具有浮动效果,即鼠标未到达指定停靠处,会停留在鼠标松手的地方
//关闭浮动,松手,未停靠就会返回之前的停靠点
tool_bar->setFloatable(false);

5.提供工具栏移动函数:setMovable()

//设置移动:
//默认为可移动
//关闭移动
tool_bar->setMovable(false);

QPushButton(包含控件,可为为工具栏添加控件)

1.提供控件对象:QPushButton* btn

	QPushButton* btn = new QPushButton("按钮",this);
    tool_bar->addWidget(btn);
    //工具栏中可以添加菜单项(响应)
    tool_bar->addAction(FirstAction);
    tool_bar->addSeparator();//分割线在哪放,就相对的出现在哪些项之间或之前、之后
    tool_bar->addAction(SecondAction);

QLabel(包含标签)

1.提供标签对象: QLabel* label_1

	//换句话说,你放到哪儿(窗体)上显示就哪儿的指针——地址
    QLabel* label_1 = new QLabel("左侧信息",this);

QStatusBar(包含状态栏)

1.提供状态栏方法/对象:statusBar(), QStatusBar* status

	//状态栏只有一个
    //和菜单栏一样是调用方法实现的对象
    QStatusBar* status = statusBar();

2.提供状态栏停靠方法:setStatusBar()

	//将状态栏放到窗口上
    setStatusBar(status);

3.提供控件添加方法:addWidget(),addPermanentWidget()

	//换句话说,你放到哪儿(窗体)上显示就哪儿的指针——地址
    QLabel* label_1 = new QLabel("左侧信息",this);
    //将标签按控件方式添加到状态栏
    status->addWidget(label_1);//从左往右放

    QLabel* label_2 = new QLabel("右侧消息",this);
    status->addPermanentWidget(label_2);//从右往左放

QDockWidget(包含铆接部件)

1.提供铆接对象:QDockWidget* dockwidget_1

	//创建铆接部件
    QDockWidget* dockwidget_1 = new QDockWidget("信息",this);

2.提供部件初始停靠位置设置函数:addDockWidget()

	//设置部件位置
    addDockWidget(Qt::BottomDockWidgetArea,dockwidget_1);

3.提供停靠范围设置函数:setAllowedAreas()

dockwidget_1->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);

QTextEdit(包含文本编辑部件)

1.提供文本编辑对象:QTextEdit* textedit_1

	//QTextEdit    编辑部件
    QTextEdit* textedit_1 = new QTextEdit(this);

核心部件

一个窗口里,仅有一个核心部件:调用当前窗口类的公共函数:setCentralWidget()
比如:文本编辑

setCentralWidget(textedit_1);//设置核心部件

总结

核心部件只能有一个和菜单以及状态栏在这一点是一样的。但是核心部件是依赖菜单/工具/控件以外的部分设置的;菜单栏/状态栏是创建对象赋值为专门函数方法返回值实现的。
设置菜单栏后才能有菜单,之后才有菜单项——均是方法返回值
工具栏可以通过函数将创建好的控件添加到工具栏中。
铆接部件/控件/标签创建方法也是父类实例

你可能感兴趣的:(QT学习)