Qt 学习笔记_02
Qt 学习笔记_02
该项目依然是Application项目的Widgets Application,基类选择的是QMainWindow,以下代码都写在类的构造函数中
1 菜单栏
菜单栏的操作当前记录有 菜单栏创建、 添加菜单、添加菜单项、添加分割线、
//需要引用头文件 <QMenuBar>
//菜单栏创建 只能有一个 menubar()以主窗口为父创建菜单栏, 若需要一个无父菜单栏,则需要用 new QMenuBar()
QMenuBar * bar = new QMenuBar();
//将菜单栏放到窗口
this->setMenuBar(bar);
//添加菜单
QMenu * fileMenu = bar->addMenu("文件");
QMenu * editMenu = bar->addMenu("编辑");
//添加菜单项
QAction * newAction = fileMenu->addAction("新建");
//添加分割线
fileMenu->addSeparator();
QAction * openAction = fileMenu->addAction("打开");
2 工具栏
工具栏当前记录的操作有 工具栏创建、设置停靠区域、设置浮动、设置移动、设置工具栏内容、添加分割线、添加控件
//需要引用头文件 <QToolBar>
//工具栏创建 可以有多个
QToolBar * toolbar = new QToolBar();
this->addToolBar(Qt::LeftToolBarArea, toolbar);
//设置停靠区域
toolbar->setAllowedAreas(Qt::RightToolBarArea);
//设置浮动
toolbar->setFloatable(false);
//设置移动
toolbar->setMovable(false);
//工具栏中设置内容
toolbar->addAction(newAction);
//添加分割线
toolbar->addSeparator();
toolbar->addAction(openAction);
//工具栏中添加控件 此处如果直接将父设为toolbar,会导致按钮覆盖到第一个QAction
QPushButton *btn = new QPushButton("按钮", this);
toolbar->addWidget(btn);
3 状态栏
状态栏当前记录的操作有 创建状态栏、放置标签控件
//需要引用头文件 <QStatusBar>
//创建状态栏 最多一个
//new QstatusBar()创建的对象无父,如果为主窗口创建状态栏,则可以用statusbar(),此时可以不用setStatusBar()
QStatusBar * stbar = new QStatusBar();
this->setStatusBar(stbar);
//放标签控件,需要引用头文件 <QLabel>
QLabel * label1 = new QLabel("提示信息", this);
stbar->addWidget(label1);
QLabel * label2 = new QLabel("右侧的提示信息", this);
stbar->addPermanentWidget(label2);
4 铆接部件
铆接部件当前记录的操作有 创建铆接部件、设置停靠位置
//需要引用头文件 <QDockWidget>
//创建铆接部件
QDockWidget * dockWidget = new QDockWidget("浮动窗口", this);
//如果不add,该dockwidget会自动添加到(0,0)处
this->addDockWidget(Qt::RightDockWidgetArea, dockWidget);
//设置可停靠位置
dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
5 设置中心部件
中心部件当前以文本编辑部件为例
//设置中心部件,中心部件只能由一个
QTextEdit * edit = new QTextEdit(this);
//同样,如果不set一下,该中心部件会在(0,0)处生成
this->setCentralWidget(edit);
最终效果如下

6 总结
- 不管是菜单栏,工具栏,状态栏,铆接部件(标签),中心部件都需要引用头文件,且创建对象后都需要用this指针(此处的this指针属于主窗口类)进行add(只允许由一个的)或set(可以有多个的)
- 菜单栏和工具栏只能由一个,在创建时可以不用类的构造函数(可以自选父亲或不选)创建对象,可以直接用去掉Q的全小写方法进行构造( 如menubar() ),此时的父亲为主窗口。
- 菜单栏和工具栏的菜单项和工具项都是QAction类的对象,可以共用
- 工具栏和铆接部件在初始化时都需要确定初始位置,且都可以后期设置可移动位置,同时工具栏可以设置为不可移动

该篇笔记涉及Qt窗口的代码基础操作,包括菜单栏、工具栏、状态栏、铆接部件、中心部件
浙公网安备 33010602011771号