我的是一步一步去设计的,没有依赖创建界面来设计。
#include //提供菜单栏,菜单部件
#include //提供工具栏部件
#include //提供控件部件
#include //提供状态栏部件
#include //提供标签部件
#include //提供铆接部件
#include //提供文本编辑部件
1.提供菜单栏:menuBar()方法
//菜单栏只能有一个
//创建菜单栏对象
QMenuBar* bar = menuBar();//定义一个指针对象指向 QMenuBar下的menubar方法返回值
2.提供菜单栏停靠:setMenuBar()方法
//函数直接调用,参数为菜单栏对象
setMenuBar(bar);//挂在到当前窗口的菜单栏是bar
1.提供菜单对象:QMenu* openMenu
//添加菜单名字(从0到……)/如具体软件中的文件(F)
QMenu* openMenu= bar->addMenu("文件");//创建菜单对象——赋值为当前菜单栏成员函数addMenu的返回值==菜单
//addMenu为菜单栏下的方法调用后的返回函数值给创建的openMenu对象
//可直接显示
2.提供菜单分割线:addSeparator()方法
openMenu->addSeparator();//在此菜单后添加分割线
1.提供菜单项对象:QAction* NewAction
//添加菜单项——即对添加的菜单添加响应
QAction* NewAction = fileMenu->addAction("新建");
//addAction为菜单提供的方法,返回的值赋给创建的NewAction对象
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);
1.提供控件对象:QPushButton* btn
QPushButton* btn = new QPushButton("按钮",this);
tool_bar->addWidget(btn);
//工具栏中可以添加菜单项(响应)
tool_bar->addAction(FirstAction);
tool_bar->addSeparator();//分割线在哪放,就相对的出现在哪些项之间或之前、之后
tool_bar->addAction(SecondAction);
1.提供标签对象: QLabel* label_1
//换句话说,你放到哪儿(窗体)上显示就哪儿的指针——地址
QLabel* label_1 = new QLabel("左侧信息",this);
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);//从右往左放
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);
1.提供文本编辑对象:QTextEdit* textedit_1
//QTextEdit 编辑部件
QTextEdit* textedit_1 = new QTextEdit(this);
一个窗口里,仅有一个核心部件:调用当前窗口类的公共函数:setCentralWidget()
比如:文本编辑
setCentralWidget(textedit_1);//设置核心部件
核心部件只能有一个和菜单以及状态栏在这一点是一样的。但是核心部件是依赖菜单/工具/控件以外的部分设置的;菜单栏/状态栏是创建对象赋值为专门函数方法返回值实现的。
设置菜单栏后才能有菜单,之后才有菜单项——均是方法返回值。
工具栏可以通过函数将创建好的控件添加到工具栏中。
铆接部件/控件/标签创建方法也是父类实例。