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

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

相关推荐
悟能不能悟10 分钟前
java HttpServletRequest 设置header
java·开发语言
云栖梦泽14 分钟前
易语言运维自动化:中小微企业的「数字化运维瑞士军刀」
开发语言
刘975317 分钟前
【第23天】23c#今日小结
开发语言·c#
郝学胜-神的一滴27 分钟前
线程同步:并行世界的秩序守护者
java·linux·开发语言·c++·程序人生
superman超哥28 分钟前
Rust 移动语义(Move Semantics)的工作原理:零成本所有权转移的深度解析
开发语言·后端·rust·工作原理·深度解析·rust移动语义·move semantics
im_AMBER28 分钟前
Leetcode 95 分割链表
数据结构·c++·笔记·学习·算法·leetcode·链表
青茶36030 分钟前
【js教程】如何用jq的js方法获取url链接上的参数值?
开发语言·前端·javascript
北岛寒沫30 分钟前
北京大学国家发展研究院 经济学原理课程笔记(第十八课 国内生产总值与物价水平)
经验分享·笔记·学习
赵民勇31 分钟前
rcc (Qt Resource Compiler) 详细指南
qt
superman超哥39 分钟前
Rust 所有权转移在函数调用中的表现:编译期保证的零成本抽象
开发语言·后端·rust·函数调用·零成本抽象·rust所有权转移