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模块

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

相关推荐
冰糖猕猴桃1 分钟前
【Python】进阶 - 数据结构与算法
开发语言·数据结构·python·算法·时间复杂度、空间复杂度·树、二叉树·堆、图
天水幼麟5 分钟前
python学习笔记(深度学习)
笔记·python·学习
wt_cs28 分钟前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
you45801 小时前
小程序学习笔记:使用 MobX 实现全局数据共享,实例创建、计算属性与 Actions 方法
笔记·学习·小程序
_WndProc1 小时前
【Python】Flask网页
开发语言·python·flask
笑衬人心。1 小时前
初学Spring AI 笔记
人工智能·笔记·spring
liujing102329291 小时前
Day04_刷题niuke20250703
java·开发语言·算法
UQI-LIUWJ1 小时前
计算机组成笔记:缓存替换算法
笔记·缓存
feiyangqingyun1 小时前
Qt音视频开发技巧/推流带旋转角度/rtsprtmp推流/保存文件到MP4/拉流解析旋转角度
qt·音视频·qt旋转角度推流
能工智人小辰1 小时前
二刷 苍穹外卖day10(含bug修改)
java·开发语言