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 总结

  1. 不管是菜单栏,工具栏,状态栏,铆接部件(标签),中心部件都需要引用头文件,且创建对象后都需要用this指针(此处的this指针属于主窗口类)进行add(只允许由一个的)或set(可以有多个的)
  2. 菜单栏和工具栏只能由一个,在创建时可以不用类的构造函数(可以自选父亲或不选)创建对象,可以直接用去掉Q的全小写方法进行构造( 如menubar() ),此时的父亲为主窗口。
  3. 菜单栏和工具栏的菜单项和工具项都是QAction类的对象,可以共用
  4. 工具栏和铆接部件在初始化时都需要确定初始位置,且都可以后期设置可移动位置,同时工具栏可以设置为不可移动
posted @ 2022-02-26 16:43  Liao_i  阅读(62)  评论(0)    收藏  举报