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

#include "win.h"
#include <QMenuBar>
#include <QToolBar>
#include <QLabel>
#include <QStatusBar>
#include <QDockWidget>
#include <QTextEdit> Win::Win(QWidget *parent)
: QMainWindow(parent)
{
this->resize(,);
//******************菜单栏操作**************************
QMenuBar* bar=menuBar(); //返回菜单栏指针
this->setMenuBar(bar);//给窗口设置菜单栏--把菜单栏放入窗口
//需要 #include <QMenuBar>
QMenu* fileMenu=bar->addMenu("文件");//给菜单栏添加菜单
//返回菜单的指针
QMenu* editMenu=bar->addMenu("编辑");
QAction* newAction=fileMenu->addAction("新建"); //给菜单添加一个菜单项目--添加一个行为
//返回行为指针
fileMenu->addSeparator(); //给菜单添加分割线
QAction* openAction=fileMenu->addAction("打开");
newAction->setIcon(QIcon("D:\\ss\\大象.png")); //给行为增加图标--文件中
openAction->setIcon(QIcon(":/tupin/img/对勾.png"));//给行为增加图标--资源文件中
//使用资源文件格式:":+前缀名+文件名" //******************工具栏操作*************************
QToolBar* toolbar=new QToolBar(this); //创建一个工具栏
//需要 #include <QToolBar>
addToolBar(Qt::LeftToolBarArea,toolbar);//给窗口添加工具栏--把工具栏放到窗口
//主窗口的工具栏上可以有多个工具条
//工具条是一个可移动的窗口
//参数2 要添加的工具栏
//参数1[可选] 初始停靠区域,包括:
//Qt::LeftToolBarArea 停靠在左侧 Qt::RightToolBarArea 停靠在右侧
//Qt::TopToolBarArea 停靠在顶部--默认 Qt::BottomToolBarArea 停靠在底部
//Qt::AllToolBarAreas 以上四个位置都可停靠
toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);//只能左右停靠
toolbar->setFloatable(false);//能否浮动
toolbar->setMovable(false);//能否移动--能否拖拽
toolbar->addAction(newAction); //给工具栏添加行为
//Qt 并没有专门的菜单项类,只是使用一个QAction类,抽象出公共的动作。当我们把QAction对象添加到菜单,就显示成一个菜单项,添加到工具栏,就显示成一个工具按钮。用户可以通过点击菜单项、点击工具栏按钮、点击快捷键来激活这个动作
toolbar->addSeparator();//给工具栏添加分割线
toolbar->addAction(openAction); //******************状态栏操作*******************
QStatusBar* statusbar=statusBar(); //创建状态栏
//返回状态栏指针
setStatusBar(statusbar);//给窗口添加状态栏--把状态栏放到窗口
//状态栏也只能最多有一个
QLabel* label=new QLabel("提示信息",this);
statusbar->addWidget(label,);//给状态栏左侧添加控件--左侧
//需要 #include <QStatusBar>
//方法二 QLabel* label=new QLabel("提示信息",statusbar)---父控件是状态栏
QLabel* label1=new QLabel("提示信息1",this);
statusbar->addPermanentWidget(label1);//给状态栏右侧添加控件 //*****************中心部件*******************
QTextEdit* edit=new QTextEdit;
setCentralWidget(edit); //给窗口添加中心控件 //*****************浮动窗口和停靠窗口******************
QDockWidget* dock=new QDockWidget;//创建锚接窗口--浮动窗口--停靠窗口
//需要 #include <QDockWidget>
addDockWidget(Qt::BottomDockWidgetArea,dock); //把浮动窗口添加到窗口中
//参数1 起始停靠位置
//Qt::BottomDockWidgetArea 中心部件底部
//Qt::LeftDockWidgetArea
//Qt::RightDockWidgetArea
//Qt::TopDockWidgetArea
//Qt::AllDockWidgetAreas
//Qt::NoDockWidgetArea
dock->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);//只能上下停靠 } Win::~Win()
{ }
connect(newAction,&QAction::triggered,this,[=](){qDebug()<<"点击新建行为了";});//点击行为,运行槽函数

最新文章

  1. web框架django初探
  2. js实现文本框中内容的放大显示
  3. java简单计算器
  4. C#动态调用WCF
  5. 纯JavaScripst的全选、全不选、反选 【转】
  6. C#+OpenGL编程之再见小桃子(The Tao Framework)
  7. 使用js加载器动态加载外部Javascript文件
  8. Hbase原理
  9. 视频运动motion vector获取。
  10. 一种基于PTP 协议的局域网高精度时钟同步方法(转)
  11. MST性质(用于构造最小生成树)
  12. learn-python3
  13. 14.6.1 InnoDB Startup Configuration 启动配置
  14. 要将程序集“xxx.dll”标记为系统必备组件,必须对其进行强签名
  15. Wix学习整理(1)——快速入门HelloWorld
  16. ZOJ 2110 Tempter of the Bone(条件迷宫DFS,HDU1010)
  17. android 进程(复习)
  18. linux学习(十)find命令、Linux文件后缀名、Linux和windows文件互传
  19. Django—模板渲染
  20. 剑指offer第六天

热门文章

  1. MSIX 打包 DotNetCore 3.0
  2. java追加文件
  3. flink部署
  4. Rate Limiter
  5. (4.16)mysql备份还原——物理备份之XtraBackup实践
  6. SpreadJS 纯前端表格控件 V12.2 发布更新
  7. Selenium在IE浏览器中执行脚本时输入字符太慢问题解决方法
  8. 区间前k小的和(权值线段树+离散化)--2019牛客多校第7场C--砍树
  9. qq 面对面传文件,应用
  10. python flask解决上传下载的问题