(4)基本组件

news2024/11/17 6:45:31

目录

1. Designer 设计师**

2. Layout 布局***

3. 基本组件

3.1 QWidget**

3.2 ui指针

3.3 QLabel 标签**

3.4 QAbstractButton 按钮类**

示例


1. Designer 设计师**

Designer是一款独立的用于设计Qt界面的应用程序。

Designer程序保存的文件格式为.ui,这是Qt中的界面文件格式,可以非常快速的开发用户界面。

当使用Qt Creator新建项目时,如果在第五步,选中了创建界面的选项,这样的项目会自带一个.ui界面文件。

在Qt Creator中双击界面文件,可以直接通过内置的Designer程序打开。

Designer程序的区域划分如下图所示。

2. Layout 布局***

可以把布局看做是一个“透明的盒子”,盒子内部存放的组件对象会按照这个盒子的规则自动排布,也可以把整个布局看做为一个复合组件。

布局有以下类型:

重点讲解前两个类型。

QVBoxLayout的特点是内部所有组件按照线性垂直排序,QHBoxLayout与QVBoxLayout几乎相同,只有方向不同,是水平方向的。

  当窗口中有一个布局时,可以选中窗口对象,点击工具栏任意一个布局按钮,此时可以让内部的布局贴合窗口,当窗口改变大小时,布局会在内测贴合窗口大小。选中贴合的窗口后,点击打破布局可以取消布局和窗口的贴合状态。

水平布局和垂直布局的常用属性如下:

布局支持嵌套使用,可以把一个布局看做另一个布局的子组件。

可以使用伸展器组件填充布局的空白。

3. 基本组件

3.1 QWidget**

以上属性都可以继承给其派生类,每个属性的getter和setter详见文档,不再赘述。

3.2 ui指针

当项目中使用了界面文件时,可以在Dialog类中发现多了一个成员变量:

这个ui指针就是.ui界面文件与C++代码的桥梁,以下是ui指针的工作原理。

3.3 QLabel 标签**

QLabel组件用于显示文本或图片,常用属性如下。

如果要在项目中使用图片素材,需要先把图片导入到Qt项目中,图片格式建议使用jpg、png与bmp,图片命名建议使用全英文+数字+下划线的组合,且英文不得包含大写,数字不得开头。

图片导入项目的操作步骤如下:

1. 把图片放置到工作目录中。

2. 在Qt Creator中,选中项目名称,鼠标右键,点击“添加新文件”

3. 在弹出的窗口中,按照下图所示进行操作。

4. 在弹出的窗口中给资源文件命名后,点击“下一步”。

5. 在项目管理界面,直接点击“完成”。可以看到项目中多了一个.qrc资源文件。

6. 选中资源文件,点击 添加 --- 添加前缀

7. 再次选中资源文件,点击 添加 -- 添加文件

,在弹出的对话框中选择要导入的图片文件即可。可以看到图片被添加到资源文件中了。

8. 后续在代码中使用图片只需要选中资源文件中的图片文件,鼠标右键,点击“复制资源路径到剪切板”即可。如果要在Designer中使用,则需要再次构建一次项目

虽然Qt有图形处理的功能,但是尽量在Qt之外先处理好图片的效果,这样可以提升程序的执行效率,也能降低程序的体积。

3.4 QAbstractButton 按钮类**

QAbstractButton是四种按钮的基类,内部规定按钮的基础功能,在四个派生类中功能的展示不尽相同。这个四个派生类分别是:

  • QPushButton       点击式的命令按钮
  • QRadioButton     单选按钮,单选按钮会对同一个布局中的其它按钮增加互斥性。
  • QCheckBox        多选按钮
  • QToolButton       工具按钮(目前不讲)

QAbstractButton的常用属性如下所示。

图标并不是普通的图片,图标具有以下特点:

  • 宽高比为1:1
  • 包含透明图层,通常使用png格式
  • 一个软件的图标应该保持同一种风格

示例

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
//头文件
#include <QColor>  //颜色
#include <QPalette> //调色板
#include <QPixmap> //图片
#include <QSize>  //大小
namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
};

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"

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

    //创建颜色对象
    //可以使用三个十进制0~255的RGB数值
    //也可以使用十六进制井号字符串的方式
    QColor color("#548B12");
    QPalette pa; //调色板对象

    //调制颜色
    //参数1 :颜色角色
    //参数2 :颜色对象
    pa.setColor(QPalette::WindowText,color);
    ui->labelText->setPalette(pa);

    //创建一个大小对象
    QSize size(ui->labellmg->width(),ui->labellmg->height());
    //创建一个图片对象,参数是资源路径
    QPixmap pic(":/new/prefix1/duanwujie.jpg");
    //缩放图片为目标尺寸
    //参数1:尺寸对象
    //参数2:缩放模式
    //返回值:缩放后的图片对象
    pic = pic.scaled(size,Qt::IgnoreAspectRatio);
    //设置显示
    ui->labellmg->setPixmap(pic);
}

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

 

 

 

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

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

相关文章

腾讯云轻量应用服务器修改镜像系统有哪些限制?

腾讯云轻量应用服务器镜像可以更换或修改吗&#xff1f;可以&#xff01;镜像可以修改&#xff0c;镜像是指轻量服务器的预装操作系统&#xff0c;轻量服务器创建成功后镜像也是可以更换的。 镜像是轻量服务器的预装操作系统&#xff0c;轻量应用服务器的镜像不仅包含操作系统&…

看我如何通过帮助服务台轻松黑掉数百家公司

导语&#xff1a;几个月前&#xff0c;我发现黑客可以利用一个漏洞访问目标公司的内部通信。 这个漏洞只需要点击几下&#xff0c;就可以访问企业内部网络、 Twitter等社交媒体账户&#xff0c;以及最常见的Yammer和Slack团队。 更新: The Next Web 写了一篇我发现的这个漏洞的…

SAP BusinessObjects BI crack

SAP BusinessObjects BI crack 通过基于驱动程序标准的数据库、报告工具&#xff0c;甚至自定义应用程序&#xff0c;加入SAP BusinessObjects BI报告和分析。 与BI分析、报告、ETL工具和自定义解决方案集成。 SAP BusinessObjects BI奇妙功能中的CData驱动程序&#xff1a; BI…

数据结构与算法基础(王卓)(35):交换排序之快排【第一阶段:第一遍遍历】

目录 快速排序&#xff1a; 法一&#xff1a; 法二&#xff1a;&#xff08;常用、重难点&#xff09; 第一阶段&#xff1a;第一遍遍历 Project 1: 问题&#xff1a; Project 2: 问题&#xff1a; Project 3: 问题&#xff1a; Project 4: Project 5: 快速排序&am…

spring-模型数据和视图---视图解析器的说明以及大量代码演示

目录 spring-模型数据 ● 说明 应用实例需求 创建后面所有代码执行成功之后跳转的vote_ok.jsp页面 方式 1: 通过 HttpServletRequest放入 request 域 创建 Master类 创建Pet类 创建model_data.jsp 修改 VoteHandler增加方法 创建vote_ok.jsp, 显示数据 完成测试(Post…

初级算法-动态规划

主要记录算法和数据结构学习笔记&#xff0c;新的一年更上一层楼&#xff01; 初级算法-动态规划 一、斐波那契数二、爬楼梯三、使用最小花费爬楼梯四、不同路径五、不同路径二六、整数拆分七、不同的二叉搜索树八、0-1背包九、分割等和子集十、最后一块石头的重量十一、目标和…

深入浅出分支语句—【C语言】

目录 前言&#xff1a;为什么要学习分支和循环语句呢&#xff1f; 1. 语句的分类 2. 分支语句&#xff08;选择语句&#xff09; 2.1 if-else语句 注意点&#xff1a;if-else语句后面不加{}&#xff0c;默认只能跟一条语句 2.2 switch语句 注意点&#xff1a; 前言&…

平衡二叉树旋转机制

概念 平衡二叉树的旋转机制是一种通过对树进行旋转操作来保持其平衡的方法。 分类 平衡二叉树的旋转机制包括两种基本类型的旋转&#xff1a;左旋和右旋&#xff0c;以及它们的组合。 左旋 左旋是将一个节点的右子节点旋转到它的位置上&#xff0c;同时将该节点移到其左侧&…

关于低代码开发,你是真的了解了吗?

在低代码开发已是大势所趋的今天&#xff0c;不少企业都切身感受到了低代码开发带来的便利。低代码开发平台的优势在当下数字化浪潮中&#xff0c;为企业提供了定制专属的数字化解决方案。 低代码本身没有太强的行业属性&#xff0c;这也让低代码开发平台能够更加灵活地适应不同…

嵌入式 QT 界面布局管理

目录 1、实例程序功能 2、界面组件布局 2.1 界面组件的层次关系 2.2 布局管理 2.3 伙伴关系和Tab顺序 1、实例程序功能 创建一个 Widget Application 项目 samp2_2&#xff0c; 在创建窗体时选择基类 QDialog &#xff0c;生成的类命名为 QWDialog &#xff0c;并选择…

Python实用记录(十三):python脚本打包exe文件并运行

文章目录 打包准备文件准备环境安装 具体运行第一步第二步第三步 注意 打包准备 文件准备 这里准备一个简单的python代码&#xff08;打开电脑摄像头&#xff09; import cv2 if __name__ __main__:cap cv2.VideoCapture(0)ret, frame cap.read()while ret:ret, frame c…

希亦洗地机和添可洗地机哪个好用?口碑洗地机详细对比

在当今这个科技发达的社会&#xff0c;为了能够帮助人们高效率的工作&#xff0c;各色各样的发明不断出现。扫地、拖地是我们日常生活中再普通不过的一项家务了&#xff0c;对于小型的房子而言打扫起来就比较轻松&#xff0c;对于繁忙的上班族打扫空间较大的房子就很困难&#…

Undo Log详解

undo log 基本概念 undo log是一种用于撤销回退的日志&#xff0c;在数据库事务开始之前&#xff0c;MySQL会先记录更新前的数据到undo log日志文件里面&#xff0c;当事务回滚时或者数据库崩溃时&#xff0c;可以利用 undo log来进行回退 Undo Log产生和销毁&#xff1a;Und…

redis(2)

缓存:缓存是一个高速数据交换的存储器&#xff0c;使用它可以迅速的访问和操作数据 因为单体应用已经不适用于现在的环境了,所以最终变成分布式系统,本地缓存已经不适用了 1)比如说张三用户访问了应用程序nginx把请求分配给A服务器 A机器查询数据库&#xff0c;并且把数据库的结…

模型实战(11)之win10下Opencv+CUDA部署yolov5、yolov8算法

win10下Opencv+CUDA部署yolov5、yolov8算法 测试环境:AMDRH7000+RTX3050+win10+vs2-10+opencv455+cuda11.7关于opencv470+contrib+cuda的编译,可以详见:Win10下Opencv+CUDA联合编译详细教程本文代码同时支持yolov5、yolov8两个模型,详细过程将在文中给出,完整代码仓库最后…

自动化测试真的能提效吗?怎么才能真正掌握自动化测试技巧呢?

近年来&#xff0c;随着软件开发速度的提高&#xff0c;自动化测试已经成为了一个必要的环节。但是&#xff0c;对于自动化测试&#xff0c;有些人认为它能够大幅提升效率&#xff0c;而有些人则认为自动化测试无法替代手工测试&#xff0c;并且实施自动化测试需要投入大量的时…

vue3 - 超详细头像裁剪并上传到服务器,支持按照自定义比例裁切图片效果组件插件(详细示例源码教程,一键复制运行开箱即用)

效果图 大部分都贼难用,而且全是bug。。并且很少有 vue3的,全是 vue2。。 本博客实现了在 vue3.js 项目中,实现图像上传后并按一定的比例进行裁剪的示例功能源码,支持各种参数、样式修改, 示例有 Element Plus + Vue3.js 版本,也有纯 Vue3.js 版本(无 UI 框架搭配),按…

【机器学习】西瓜书课后习题参考答案—第一章

记录西瓜书课后习题的思考与参考答案。 1.1 表1.1中若只包含编号为1和4的两个样例&#xff0c;试给出相应的版本空间。 答&#xff1a; 版本空间&#xff1a;与训练集一致的“假设集合”&#xff0c;称之为“版本空间”&#xff08;version space&#xff09; 只包含编号为1和…

Vue-cli搭建项目(包含Node.js安装和ElementUI安装)

目录 一、vue-cli 二、Node.js npm&#xff1a; Node.js安装&#xff1a; 测试&#xff1a; 三、Vue-cli搭建项目 使用HBuildex 创建一个vue.js项目 创建的自己的组件&#xff1a; 组件路由&#xff1a; 四、ElementUI安装 1.ElementUI下载&#xff1a; 2.在main.js中…

Echarts图表X轴文本过长导致展示不全

今天就遇到如题目所说问题。遇到问题当然取看官方文档喽&#xff0c;链接奉上ECharts-axis 博主使用的ECharts版本号为5.4.5 这个问题效果图如下&#xff1a; 可以看到x轴文本太长&#xff0c;导致部分x轴标签无法正常显示&#xff0c;在这里提供两种解决办法&#xff0c;并告诉…