Qt笔记 mainwindow

mainwindow是用来做应用界面的,有菜单栏,工具栏,浮动窗口,中心部件以及状态栏这几个部分组成。

举个例子:

1.菜单栏:

cpp 复制代码
#include <QMenuBar>

QMenuBar *menubar = new QMenuBar(this);
setMenuBar(menubar);//设置到当前窗口

为菜单栏设置菜单:

cpp 复制代码
QMenu *file = menubar->addMenu("文件(&F)");
//为菜单栏添加一个菜单,名字叫"文件",调用快捷键是alt+F

为菜单设置动作:

cpp 复制代码
fill->addAction("打开文件(&O)");

2.设置工具栏:

cpp 复制代码
QToolBar *toolbar = new QToolBar(this);
addToolBar(toolbar);//将工具栏设置到窗口

为工具栏添加动作:

cpp 复制代码
toolbar->addAction("工具");

3.状态栏

设置状态栏

cpp 复制代码
#include <QStatusBar>
QStatusBar *stbar = new QStatusBar(this);
setStatusBar(stbar);//状态栏也是只有一个
复制代码
因为是状态栏,是栏,不能直接设置文本,但可以通过添加组件的方式来显示文本
cpp 复制代码
#include <QStatusBar>
#include <QLabel>

    //StatusBar
    //设置状态栏
    QStatusBar *stbar = new QStatusBar(this);
    setStatusBar(stbar);//状态栏也是只有一个
    QLabel *label = new QLabel(this);
    label->setText("状态栏");
    stbar->addWidget(label);//因为是状态栏,是栏,不能直接设置文本,但可以通过添加组件的方式来显示文本

4.浮动窗口

cpp 复制代码
#include <QDockWidget>
 //Dock Widget
    //设置浮动窗口
    QDockWidget *dock = new QDockWidget("小窗口",this);
//设置浮动窗口的同时可以设置名称;
    addDockWidget(Qt::LeftDockWidgetArea, dock);//因为浮动窗口可以有多个,所以应该用add,浮动窗口的位置是相对于中心部件的

5.设置中心部件

复制代码
一般的中心部件都是文本编辑器
cpp 复制代码
#include <QTextEdit>
    //central widget
    //一般的中心部件都是文本编辑器
    QTextEdit *edit = new QTextEdit(this);
    setCentralWidget(edit);//中心部件只有一个,因此应该用set

6.为组件设置图片

如何将图片加入到工程文件,使得该工程文件调用图片不受绝对目录的影响。

1)首先创建工程Qt源文件

点击Open in Editor

填写前缀后增加文件到工程目录上

2)引用Qt源文件中的资源

cpp 复制代码
    ui->setupUi(this);
    ui->actionnew->setIcon(QIcon(":/Image/images/new.png"));
    ui->actionclose->setIcon(QIcon(":/Image/images/close.png"));
    ui->actionopen->setIcon(QIcon(":/Image/images/open.png"));

注意引用格式":/.../.../",这个双引号不要忘了,否则引用资源不成功。

actionnew等都是菜单下的action模块

这样就可以做到在工程文件中引用资源,而不是依靠绝对路径。

相关推荐
齐生115 小时前
iOS 知识点 - 渲染机制、动画、卡顿小集合
笔记
Felix_One17 小时前
Qt 串口通信避坑指南:QSerialPort 的 5 个常见问题
qt
用户962377954481 天前
VulnHub DC-1 靶机渗透测试笔记
笔记·测试
齐生12 天前
iOS 知识点 - IAP 是怎样的?
笔记
tingshuo29172 天前
D006 【模板】并查集
笔记
tingshuo29173 天前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
blasit4 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
郑州光合科技余经理9 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1239 天前
matlab画图工具
开发语言·matlab
西岸行者9 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习