【Qt】3.菜单栏、工具栏、状态栏、铆接部件、核心部件、资源文件

news2024/11/22 12:13:28

目录

菜单栏

工具栏

代码

mainwindow.cpp

结果

状态栏

铆接部件

核心部件

代码

mainwindow.cpp

结果

资源文件

代码

mainwindow.cpp

结果

菜单栏

  1. 只能有一个

  2. menuBar()返回一个QMenuBar *bar

  3. 将bar放入到窗口中setMenuBar(bar)

  4. 添加菜单addMenu("文件")

  5. 添加菜单项addAction("新建")

  6. 分割线addSeparator()

工具栏

  1. 可以多个

  2. QToolBar

  3. addToolBar(停靠位置,toolbar)

  4. 设置停靠、浮动、移动

  5. 工具栏也可以添加菜单项

  6. 也添加分割线

代码

mainwindow.cpp

#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(600,400);

    //包含菜单栏,只能有一个
    QMenuBar *bar=menuBar();

    //将菜单栏放入到窗口中
    this->setMenuBar(bar);

    //创建文件菜单
    QMenu *fileMenu=bar->addMenu("文件");
    QMenu *editMenu=bar->addMenu("编译");

    //添加菜单项
    QAction *XinJian=fileMenu->addAction("新建");
    fileMenu->addSeparator();//添加分割线
    QAction *DaKai=fileMenu->addAction("打开");

    //工具栏可以有多个
    QToolBar *toolBar=new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar);//默认停靠范围

    //只允许左右侧停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

    //设置浮动
    toolBar->setFloatable(false);

    //设置移动(总开关)
    toolBar->setMovable(false);

    //工具栏添加菜单项
    toolBar->addAction(XinJian);
    toolBar->addSeparator();//添加分割线
    toolBar->addAction(DaKai);
}

MainWindow::~MainWindow()
{
}

结果

状态栏

  1. 只能有一个

  2. statusBar()返回QStatus *sBar

  3. addStatusBar(sBar)

  4. 添加内容addWidget(QLabel)

  5. 添加右侧信息

铆接部件

  1. 可以有多个

  2. QDockWidget

  3. addDockWidget(停靠位置,...)

  4. 后期设置停靠

核心部件

  1. 只能有一个

  2. setCentralWidget()

代码

mainwindow.cpp

#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(600,400);

    //包含菜单栏,只能有一个
    QMenuBar *bar=menuBar();

    //将菜单栏放入到窗口中
    this->setMenuBar(bar);

    //创建文件菜单
    QMenu *fileMenu=bar->addMenu("文件");
    QMenu *editMenu=bar->addMenu("编译");

    //添加菜单项
    QAction *XinJian=fileMenu->addAction("新建");
    fileMenu->addSeparator();//添加分割线
    QAction *DaKai=fileMenu->addAction("打开");

    //工具栏可以有多个
    QToolBar *toolBar=new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar);//默认停靠范围

    //只允许左右侧停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

    //设置浮动
    toolBar->setFloatable(false);

    //设置移动(总开关)
    toolBar->setMovable(false);

    //工具栏添加菜单项
    toolBar->addAction(XinJian);
    toolBar->addSeparator();//添加分割线
    toolBar->addAction(DaKai);

    //状态栏,只能有一个
    QStatusBar *stBar=statusBar();
    setStatusBar(stBar);
    QLabel *label=new QLabel("提示信息",this);
    stBar->addWidget(label);//添加提示信息到左侧
    QLabel *label2=new QLabel("右侧提示信息",this);
    stBar->addPermanentWidget(label2);

    //铆接部件 浮动窗口可以有多个
    QDockWidget *dock=new QDockWidget;

    //添加铆接部件到窗口中
    addDockWidget(Qt::BottomDockWidgetArea,dock);

    //设置停靠范围
    dock->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);

    //核心部件,只能一个
    QTextEdit *edit=new QTextEdit;//文本编辑框
    setCentralWidget(edit);
}

MainWindow::~MainWindow()
{
}

结果

资源文件

  1. 将使用的图片资源放入项目中

  2. 右键项目->添加新文件->Qt->QtResourceFile

  3. 起名称ZiYuan_WenJian,生成ZiYuan_WenJian.qrc文件

  4. 右键ZiYuan_WenJian.qrc->open in editor

  5. 添加前缀,添加文件

  6. 使用":+前缀名+文件名"

代码

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //通过ui寻找控件
    //ui->action_XinJian->setIcon(QIcon("/home/cet/Qt/JiaoCheng/4/TuPian/a1.png"));//本地路径

    //使用资源文件 ":+前缀名+文件名"
    ui->action_XinJian->setIcon(QIcon(":/TuPian/a1.png"));
    ui->action_DaKai->setIcon(QIcon(":/TuPian/a2.png"));
}

MainWindow::~MainWindow()
{
    delete ui;
}

结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三年了,回村了

今年回老家了&#xff0c;因为工作和疫情等原因已经三年多没回了&#xff0c;思乡之情已经压不住了。 老家是一个五线小城市&#xff0c;属于南方典型的鱼米之乡&#xff1a;依山傍水、山清水秀。同时还有一个知名白酒厂&#xff1a;白云边&#xff0c;经济发展还不错。 老家…

从“语义网”到“去中心化”,Web3.0到底是个啥?

什么是Web3.0&#xff0c;为什么近两年这个概念又再一次火出了圈&#xff0c;但凡A股上市公司正在做或者准备做的业务与它沾上边&#xff0c;总会有那么几次异动。 这个概念到底是金融市场布下的骗局&#xff0c;还是未来互联网发展的趋势&#xff0c;在大家的眼里都是褒贬不一…

Redis 核心原理串讲(下),架构演进之高扩展

文章目录Redis 核心原理总览&#xff08;全局篇&#xff09;前言一、数据分片1、集群&#xff1f;2、分片&#xff1f;3、分片固定&#xff1f;4、元数据二、集群1、代理集群2、分片集群3、代理 分片集群三、生产实践总结Redis 核心原理总览&#xff08;全局篇&#xff09; 正…

新的一年,如何打开超级APP发展格局

本文开始我们先来明确一个概念&#xff1a;超级APP是什么&#xff1f;百度百科的定义是——那些拥有庞大的用户数&#xff0c;成为用户手机上的"装机必备”的基础应用。实际上各大互联网平台也给出了不同的解释&#xff0c;但相同点是他们都认为超级APP就应该超级个性化&a…

简单手写后门Safedog检测绕过

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是简单手写后门Safedog检测绕过。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁…

最长上升子序列、最长公共子序列、最长公共上升子序列(LIS、LCS、LCIS)

LIS、LCS、LCIS最长上升子序列LIS最长公共子序列LCS最长公共上升子序列LCIS最长上升子序列LIS 题目链接&#xff1a;AcWing895. 最长上升子序列 这里只说明O(n2)O(n^2)O(n2)的解法&#xff0c;O(nlogn)O(nlogn)O(nlogn)解法之前的博客有介绍 O(n2)O(n^2)O(n2)的解法较为容易理…

MMCV - browse_dataset.py 可视化config文件数据预处理部分

无论是mmdetection、mmtracking、mmdetection3D等框架&#xff0c;在\tools\analysis_tools中均有一个名为browse_dataset.py的文件。该文件能够帮助用户直接可视化 config 文件中的数据处理部分&#xff0c;查看标注文件是否正确&#xff0c;同时可以选择保存可视化图片到指定…

百度学习经验

如何应对干扰1.将吸引你注意力的东西放在一旁&#xff0c;离开你的视野范围2.告诉大家你有空的时间&#xff0c;和你要专注的时间范围3.跟别人咨询的时候也是一样&#xff0c;不要在他专注的时候大扰别人关于如何做事&#xff0c;控制精力就是按照重要程度排序&#xff0c;不重…

《最佳停止时间》:什么时候可以停止寻找?

分享一个有趣的数学编程知识 《最佳停止时间》&#xff1a;什么时候可以停止寻找&#xff1f; 日常生活有很多"寻找-决策过程"&#xff0c;如果考察所有选项&#xff0c;要花费很长时间&#xff0c;可能还会错失机会&#xff0c;后面遇到的未必有前面的好。能否确定一…

实力见证 | Authing 荣获 2022 中国数字化转型与创新评选之“年度安全创新产品”

近日&#xff0c;由数字产业创新研究中心、锦囊专家、首席数字官联合全国 20 多家 CIO 组织机构、行业协会共同发起的 《2022 中国数字化转型与创新评选》 获奖榜单新鲜出炉&#xff0c;Authing 成功入选该榜单&#xff0c;荣获“年度安全创新产品”。 该榜单自 2022 年 5 月启…

【设计模式】行为型模式·策略模式

学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 一.概述 该模式定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以相互替换&#xff0c;且算法的变化不会影响使用算法的客户。 策略模式属于对象行为模式&#xff0c;它通过对算法进行封…

英语学习 作文 1

1 议论文和应用文 1、议论文&#xff1a;essay 1 观点选择&#xff1a;option、choice 2 现象解释&#xff1a;why、what 3 问题解决&#xff1a;how to、solution、measure **4 图片图表&#xff1a;image、cartoon、diagram、chart**2、应用文&#xff1a;信件、通知、报道…

设计模式——创建型模式

目录 4.创建型模式 4.1 单例设计模式 4.1.1 单例模式的结构 4.1.2 单例模式的实现 4.1.3 存在的问题 4.1.4 JDK源码解析-Runtime类 4.2 工厂模式 4.2.1 概述 4.2.2 简单工厂模式 4.2.3 工厂方法模式 4.2.4 抽象工厂模式 4.2.5 模式扩展 4.2.6 JDK源码解析-Collecti…

2023年山东最新建筑施工信号工(建筑特种作业)考试真题题库及答案

百分百题库提供特种工&#xff08;信号工&#xff09;考试试题、特种工&#xff08;信号工&#xff09;考试预测题、特种工&#xff08;信号工&#xff09;考试真题、特种工&#xff08;信号工&#xff09;证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助…

C++98以及C++11产生随机数的方法

目录引言1、C98标准实现随机数2、C11新标准随机数引擎引言 在C11出现之前&#xff0c;C98使用随机数采用的是C标准库的写法。而在C11出现后&#xff0c;我们生成随机数可以采用更为现代化的方式。 1、C98标准实现随机数 以往生成随机数使用的是cstdlib.h库中的rand()函数&…

基于Node.js的3DTiles三维倾斜摄影模型爬虫

随着小型无人机的普及,乡村级的倾斜摄影模型构建已经越来越简单。一个无人机和一名飞手2个小时内就可以完成。在做WebGIS和Cesium开发时,3DTiles是一种常用的倾斜摄影三维模型的切片格式。3DTiles格式通常有散列和紧凑两种文件组织形式,其中不同工具生成的散列数据使用的索引…

【GNN报告】GNN-LOGS部分报告汇总

Bastain Rieck: Topology-Based Graph Representation Learning 基础 拓扑学习 基于拓扑学习的工作 参考 Bastain Rieck: Topology-Based Graph Representation Learning_哔哩哔哩_bilibili Chaitanya K. Joshi Graph Neural Networks for Geometric Graphs 背景 方法 Geom…

Kenney Assets - 提供数以万计免费商用的游戏制作素材下载,包括 2d、3d素材,游戏音效和游戏 UI

来自荷兰的游戏公司开放了自家游戏的素材包&#xff0c;制作很精美&#xff0c;下载后无需取得授权就能直接商用。 关于 Kenney Assets Kenney Assets 是游戏公司 Kenney 为游戏开发者提供的游戏素材资源网站&#xff0c;主要包括游戏 2D / 3D 人物和场景素材&#xff0c;游戏…

AXI 总线协议学习笔记(1)

引言 此文针对 XILINX的用户指南 UG761进行学习简单对AXI作说明。从下篇文章开始&#xff0c;通过阅读ARM官网的AXI协议标准进行系统学习。可以持续关注~ AXI是什么&#xff1f; AXI是ARM AMBA的一部分&#xff0c;ARM AMBA是1996年首次引入的一系列微控制器总线。 AXI的第…

ORA-29740:evicted by member %d, group incarnation %d

这个错误是在 rac 底下出现的&#xff0c;应该算是个比较严重的错误&#xff0c;就是 某个节点 被 踢&#xff08;evict&#xff09;出去了&#xff0c;导致这个节点重启系统。 这个错误的原因多种多样&#xff0c;而且需要找的日志文件也是很多的&#xff0c;基本上&#xff…