在创建基类的时候,有三大选择,一个是QWidge 空窗口, 另一个就是QMainWindow
QMainWindow是一个为用户提供主窗口的类,包含一个菜单栏,多个工具栏,多个链接部件, 一个状态栏以及一个中心部件,是许多应用程序的基础,如文本编辑器,图片编辑器等
菜单栏、工具栏、铆接部件(浮动窗口)、中心部件
创建新项目咯 Application—>第一个Widges Application----->下一步起名字放位置----->默认不去动----->基类就选择QMainWindow, 创建见面那一栏先不勾还是用代码实现,类名改不改都行
菜单栏
先举个简单例子:先创建一个menuBar, 有一个系统的方法可以直接创建menuBar()
bar需要被放进去,且只有在有内容的时候才会显示
在.cpp中声明创建即可, 可以看到有点击的效果
一般点击菜单之后会有菜单项,比如word中点击文件,就会有新建保存之类的,所以需要创建菜单项, (里面直接写字符串是这个函数最为简单的一个用法,先时间基本的,后续再研究不同参数的应用场景
也可以添加风格符 两个菜单项之间多一个横线
需要注意 菜单栏只能有一个
工具栏
工具栏可以有多个, 工具栏没有系统的方法,只能new一个出来,放到对象树上, 然后同样的放到窗口中
多了一个栏, 这个栏可以被拖拽到上下左右, 这其实可以通过参数去修改它默认的位置。
打开默认就会停靠在左边
也可以只允许左右停靠setAllowedArea
对toolBar设置内容, 工具栏里放的是啥,就是要做的事情嘛,可以把上面file下创建的的action接收起来
再将这两个action放到toolbar中
运行结果如下, 这边的新建和打开就是菜单栏下打开file的新建和打开, toolBar可以添加分割线
可以在工具栏中添加控件,比如说按钮, 可以通过addWidget
将这个控件放进去
这部分总结
-
菜单栏最多只能有一个
1.1. QMenuBar * bar = MenuBar(); 创建菜单栏 有专门的函数
1.2. setMenuBar(bar);将菜单栏放入
1.3. QMenu * fileMenu = bar->addMenu(“file”);在菜单栏中增加内容
1.4. QMenu* editMenu = bar->addMenu(“edit”)’
1.5. QAction* newAction = fileMenu->addAction(“open”); 创建菜单项
1.6. fileMenu->addSeperator();添加分割线 -
工具栏可以有多个
2.1. QToolBar* bar = new QToolBar(this)'//创建
2.2. addToolBar(默认停靠区域,bar);把bar放进去
2.3. 设置后期停靠位置, 设置浮动,设置移动等
2.4. bar->addAction(newAction) 设置菜单项
2.5. bat->addWidge(btn)可以添加小控件
状态栏
最多只能有一个,系统提供一个成员函数, 同样的先生成一个stBar,放到窗口中, 在bar中放东西
也可以放在右侧
铆接部件(浮动窗口)
这个窗口可以浮动
但是代码中显示的是下方,为何看上去现在是上边呢,是因为现在还没有中心部件,上下是围绕着中心部件来的
现在设置个中心部件,比如整个记事本
结果就是:
可以看到浮动窗口到下面了