QT控件通过qss设置子控件的对齐方式、大小自适应等

news2024/11/24 7:30:19

一些复杂控件,是有子控件的,每个子控件,都可以通过qss的双冒号选择器来选中,进行独特的样式定义。很多控件都有子控件,太多了,后面单独写一篇文章来介绍各个控件的子控件。这里就随便来几个例子

例如下拉列表控件,右边有个下拉按钮(QComboBox::drop-down)就是子控件,这个下拉按钮里面还有一个箭头(QComboBox::down-arrow),也是子控件。

展开的下拉列表,每个条目(QAbstractItemView::item)也都是子控件。

又比如spinbox,有个上下箭头可以调整数值大小,这个上下箭头也是子控件。

下面通过样式表,来调整这个spinbox的上下按钮的位置:

QSpinBox 
{
    border: 1px solid black;
	padding-left:5px;

}

QSpinBox::up-button 
{/*上按钮*/
    subcontrol-origin: border;/*以盒子模型的border区域为坐标系*/
    subcontrol-position: top right;/*位于border的右上角*/
    width: 16px;
    border: 3px solid green;/*绿边框*/
    background-color: red;/*红背景*/
}
QSpinBox::up-arrow 
{/*上按钮中的箭头 最好是用贴图*/
    background-color: white;/*这里图简便,就用白色方块代替了*/
    width: 5px;
    height: 5px;
}

QSpinBox::down-button 
{/*下按钮*/
    subcontrol-origin: border;
    subcontrol-position: left;/*border坐标系的左边*/
    width: 16px;
    border-image: url(:/images/spindown.png) 1;
    border: 3px solid blue;/*绿边框*/
	background-color: green;
}

 以上代码效果如下:

如果想让上下按钮的高度自适应QSpinBox的高度怎么办?

答:需要一些简单的基础知识,定义位置需要知道坐标系和坐标,而坐标又分为绝对和相对(默认)。坐标值的定义比较直观,形如:left: 5px; right:1em; top:10pt;  bottom:20%; 上下左右都可以指定,但是注意,不要写出矛盾的语句。

下面我们看一下,在相对坐标系和绝对坐标系下,设置同样的坐标,效果有何区别:


QSpinBox::up-button 
{/*上按钮*/
    subcontrol-origin: border;/*以盒子模型的border区域为坐标系*/
    subcontrol-position: top right;/*位于border的右上角*/   
    border: 3px solid green;/*绿边框*/
    background-color: red;/*红背景*/
	width:20px;
	position:absolute;/*绝对坐标*/
	bottom:5px;/*距离坐标系底部5px*/
}

 

 以上左图是基于原先位置上移了5px,而右图是让按钮距离border底部5px(以为我们已经设置了以border为参考系)。 

理解了坐标系*(参考系)的概念,把红绿两个子控件的高度自适应QSpinBox的高度就简单了:

QSpinBox::down-button 
{/*下按钮*/
    subcontrol-origin: border;
    subcontrol-position: left;/*border坐标系的左边*/
    border-image: url(:/images/spindown.png) 1;
    border: 3px solid blue;/*绿边框*/
	background-color: green;
	width:20px;
	position:absolute;/*绝对参考系*/
	bottom:0px;/*距离坐标系底5px*/
}
QSpinBox::down-arrow 
{/*下按钮中的箭头*/
    background-color: white;
    width: 13px;/*用白色直线来绘制减号*/
    height: 3px;
}

 

 

 

 

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

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

相关文章

【AI换脸】roop在Kaggle上的使用样例

【AI换脸】roop在Kaggle上的使用样例 roop-kaggle前言换脸效果样例 GIF项目描述 roop-kaggle 【AI换脸】roop在Kaggle上的使用样例只需一张脸的图片,即可完成视频内的换脸点我进入Kaggle Notebook样例 前言 因为roop项目的Python环境依赖等问题的处理对于部分朋友…

环境监测系统网关,让景区变成智能化

景区环境监测系统采用先进的物联网网关,实现对各监测单元数据的采集、存储、传输和管理,主要对景点的气象要素、空气质量、水文变化、地质信息、雷电危害等进行监测,是一个集气象预警、在线监控等多种功能于一体的现代化综合系统。 系统介绍…

基于vue+uniapp微信小程序公司企业后勤服务(设备)系统

本系统分为用户和管理员两个角色,其中用户可以注册登陆系统,查看公司公告,查看设备,设备入库,查看通讯录,会议室预约,申请出入,申请请假等功能。管理员可以对员工信息,会…

【Linux】Centos的一些快捷操作

Centos的一些快捷操作 一个窗口多个终端GVIM 一个窗口多个文件 一个窗口多个终端 GVIM 一个窗口多个文件

2023十大最牛编程语言排行榜以及各语言的优缺点

文章目录 ⭐️ 2023年7月十大编程语言排行榜⭐️ 十大值得学习编程语言概要🌟 Python🌟 C/C🌟 Java🌟 C#🌟 JavaScript🌟 Swift🌟 Ruby🌟 GO(Golang)&#x1…

FreeRTOS函数的命名规则

在学习FreeRTOS的时候,经常遇到函数名前有“x”或“v",实际上这代表了函数返回值的类型: (参考了FreeRTOS系统中函数名和变量名的含义_vportenablevfp_Tinus Chen的博客-CSDN博客)

Redis 命令介绍

文章目录 Redis字符串操作命令哈希操作命令列表操作命令set集合sorted set 有序集合通用命令 在Java中操作Redis🍐 ❤️ 🚩4.1 Redis的Java客户端 🍐4.2 Spring Data Redis使用方式 ✏️环境搭建步骤1). 导入Spring Data Redis的maven坐标2).…

xshell连接报错Socket error Event: 32 Error: 10053.

查看ssh服务端的日志 cat /var/log/auth.log |less 查看 ll /etc/ssh/ 发现以下文件的大小为0 /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_rsa_key解决方案 生成rsa_key # ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key生成ecdsa_key # ssh-keygen -t ecdsa -f /et…

Python 集合 remove()函数使用详解,删除集合中的元素,删除多个元素

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 remove函数使用详解 1、删除多个元素2、删除不存在的元素会报错3、删除的元素可以…

边缘计算对现代交通的重要作用

边缘计算之所以重要,是在于即使在5G真正商用之时,可以实现超大带宽(eMBB)的应用场景,但庞大数据量的涌现也就意味着需要在云和端传输过程中找到一个承接点,对数据进行预处理再选择是否上云。 边缘计算应用演…

C++ - stack 和 queue 模拟实现 -认识 deque 容器

stack模拟实现 用模版实现 链式栈 和 顺序栈 对于stack 的实现,有两种方式,一种是连续空间存储的顺序栈,一种是不连续空间存储的链式栈,在C当中如果要使用两种不同的栈的话,实现方式是不一样的,他们的底层逻…

新型双功能整合剂2374782-03-1,NOTA-FAPI-04,具有良好的配位和整合能力

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ NOTA-FAPI-04,大环化合物-FAPI-04 PART1----产品结构式 PART2----产品规格 1.CAS号:2374782-03-1 2.分子式:C36H47F2N9O8 3.分子量:771.8238 4.沸点 1061.865.0 C(Predicted)…

Unity自定义后处理——Tonemapping色调映射

大家好,我是阿赵。   继续介绍屏幕后处理,这一期介绍一下Tonemapping色调映射 一、Tone Mapping的介绍 Tone Mapping色调映射,是一种颜色的映射关系处理,简单一点说,一般是从原始色调(通常是高动态范围&…

Langchain 集成 Milvus

Langchain 集成 Milvus 1. 安装 Docker2. 部署 Milvus3.4. Langchain 集成 Milvus 1. 安装 Docker refer: https://docs.docker.com/engine/install/centos/ Milvus 会以容器方式启动,所以先安装 Docker。(本示例使用的是 Alma Linux 9.2) 卸载旧版本&#xff0c…

文件上传--题目

之前有在技能树中学过文件上传,正好借这次进行一个整合: 技能树中所包含的题目类型有 无限制绕过 1.上传一句话木马 2.链接中国蚁剑 前端验证 1.会发现这个网站不让提交php,改后缀为jpg格式,再用burp抓包 2.在用中国蚁剑连接 .…

Python Web 开发及 Django 总结

title: Python Web 开发及 Django 总结 date: 2023-07-24 17:26:26 tags: PythonWeb categories:Python cover: https://cover.png feature: false Python 基础部分见:Python 基础总结 1. 创建项目 1.1 命令行 1、下载安装 Django 在终端输入 pip install djan…

SpringBoot——内置数据源

简单介绍: 在之前我们介绍SpringBoot的数据层解决方案的时候,曾说到过在数据层是由数据源,持久化技术和数据库组成的,之前我们一直使用的都是DruidMyBatisMySQL组合的解决方案。这三种方案在之前我们都介绍过如何整合以及基础的使…

Django模型将模型注释同步到数据库

1、安装django-comment-migrate库 pip install django-comment-migrate 2、将库注册到settings.py文件中 INSTALLED_APPS [...django_comment_migrate, # 表注释... ] 3、加注释 3.1、给模型(表)加注释 在模型的class Meta中编辑 verbose_name&…

嵌入式:QT Day2

一、继续完善登录框&#xff0c;当登陆成功时&#xff0c;关闭登陆页面&#xff0c;跳转到新的界面中 源码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> //用于打印输出 #include <QIcon> …

部署 cacti 监控系统

Cacti Cacti&#xff08;流量和性能监测为主&#xff09; Cacti 在英文中的意思是仙人掌的意思&#xff0c;Cacti 是一套基于 PHP、MySQL、SNMP 及 RRDTool 开发的网络流量监测图形分析工具。它通过 snmpget 来获取数据&#xff0c;使用 RRDtool 绘画图形&#xff0c;而且你完…