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

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

相关推荐
Xudde.5 小时前
班级作业笔记报告0x04
笔记·学习·安全·web安全·php
晓晓hh6 小时前
JavaSE学习——迭代器
java·开发语言·学习
Laurence6 小时前
C++ 引入第三方库(一):直接引入源文件
开发语言·c++·第三方库·添加·添加库·添加包·源文件
kyriewen116 小时前
你点的“刷新”是假刷新?前端路由的瞒天过海术
开发语言·前端·javascript·ecmascript·html5
014-code6 小时前
String.intern() 到底干了什么
java·开发语言·面试
421!7 小时前
GPIO工作原理以及核心
开发语言·单片机·嵌入式硬件·学习
摇滚侠7 小时前
JAVA 项目教程《苍穹外卖-12》,微信小程序项目,前后端分离,从开发到部署
java·开发语言·vue.js·node.js
@insist1237 小时前
网络工程师-生成树协议(STP/RSTP/MSTP)核心原理与应用
服务器·开发语言·网络工程师·软考·软件水平考试
野生技术架构师8 小时前
2026年牛客网最新Java面试题总结
java·开发语言
环黄金线HHJX.8 小时前
Tuan符号系统重塑智能开发
开发语言·人工智能·算法·编辑器