QT Creator的style sheet的几种用法(QT Creator)(StyleSheet)(样式)(QT4.7)(用法)

2023-11-11

摘要:

       QT Create中,对button或者window等部件设置背景、颜色、透明等样式时,需要用到style sheet,可以直接在代码里写,也可以在ui设计师里通过右键change style sheet的方法来设置,本人是使用的后面的方式,下面介绍几种常见的用法。

介绍:

    作者使用的开发环境为:qt creator 201005, qt4.7。

    1、利用style sheet给窗体设置背景

    使用stylesheet设置背景图片还是有一些要注意的,如果是在mainwindow和dialog中,直接右键change style sheet在add resource中选择background-image或者border-image,选择资源文件中的图片就行了(前者是按像素显示图片,后者可根据窗体大小来自动缩放图片),如下图:

    

    但在widget中就不行,你会发现,用同样的方法,背景并没有发生改变,而仅仅是它的子窗体背景图片发生了改变。

    那么在widget中要如何做呢,我们在widget中放置一个frame,然后对frame通过stylesheet设置背景,后面窗体里所有的部件都放在这个frame里。

    我们知道,子窗体会继承父窗体的属性,也就是说,父窗体的背景,在子窗体中也会有,那如何让子窗体不继承父窗体的背景呢,同样的,还是在Edit Style Sheet里,需下输入如下代码:

#desktop { 
border
- image: url(: / images / desktop.jpg);
}

#desktop 
*  {
border
- image:url();
}

    desktop是你的窗体名。

    2、menubar设置透明

    我想做一个菜单按钮,像ubuntu的应用程序菜单一样,能在点击时弹出一个下拉框,我选择了用mainwindow来实现,但我如现menuba显示在顶层很难看,如何才能不让它显示呢。

    设置menuba的stylesheet,

background-color:transparent

    将背景设置为透明。

    3、tool button不显示边框

    当我们设置button的icon时,发现icon的形状并不与button完全一致,如下图:

    

   设置stylesheet

border-style: flat;

    效果如下:

    注意,一定要选择tool button,而不要选择push button,因为push button活动的时候会有一个虚线框。

    要达到上图的效果,除了设置border-style:flat,可不可以将style设置为transparent呢?设置成transparent后,显示上看,效果是和上图的一样,但当按下时,button没有被图片覆盖的地方就会显示被按下时的颜色。

 4、在父窗体的stylesheet中设置子部件的属性

    假设有多个button,且它们的样式是一样的,那是不是需要一个个设置呢?不需要的,我们可以在父窗体中进行设置,那么子部件都会继承它的属性。

 如果某个button的样式特殊,再单独修改就行了,下面举个实例,在父窗体的stylesheet中设置如下

QDialog{background:rgb(229, 255, 239)}  QMenuBar{background:url(:/image/header.bmp)}  QStatusBar{background:url(:/image/header.bmp)}  QPushButton{background:url(:/image/header.bmp)}  QLCDNumber{background:url(:/image/lcd.bmp)}  QLabel{color: rgb(0, 0, 255)}  QDial{background-color: rgb(67, 67, 67)}
QGroupBox {
 border-width:2px;
border-style:solid;
 border-color:#FFFFFF;
}
QGroupBox{color: rgb(255,255, 255)}
QToolButton{border-style: flat;}

  

结语:

     style sheet用起来很方便,以上是总结的几种用法,后面会继续补充。

参考资料:  

<h1 microsoft="" yahei',verdana,sans-serif;="" border-bottom:="" 2px="" solid="" #dcdcdc;"="" style="box-sizing: border-box; font-size: 36px; margin: 20px 0px 10px; font-family: Roboto, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51);"> Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())



from: http://jingpin.jikexueyuan.com/article/1394.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT Creator的style sheet的几种用法(QT Creator)(StyleSheet)(样式)(QT4.7)(用法) 的相关文章

  • 【图像识别】基于支持向量机svm植物叶子疾病检测和分类

    最近在学习svm算法 借此文章记录自己的学习过程 在学习很多处借鉴了z老师的讲义和李航的统计 若有不足的地方 请海涵 svm算法通俗的理解在二维上 就是找一分割线把两类分开 问题是如下图三条颜色都可以把点和星划开 但哪条线是最优的呢 这就是
  • java jmap用法_java命令--jmap命令使用

    jdk安装后会自带一些小工具 jmap命令 Java Memory Map 是其中之一 主要用于打印指定Java进程 或核心文件 远程调试服务器 的共享对象内存映射或堆内存细节 jmap命令可以获得运行中的jvm的堆的快照 从而可以离线分析
  • 设计模式6-命令模式(Command)解析+案例实践+总结

    本文是对面向对象设计模式 命令模式 Command 的解析 主要分为定义解析 通过餐厅点餐案例 遥控器案例讲解命令模式 多案例练习加深对命令模式的理解 最后总结知识要点 第一篇 定义解析 命令模式是GoF四人帮整理的 设计模式 可复用面向对
  • mysql语句声明外键

    环境 在Navicat 中进行mysql的语句操作 示例 1 创建一张员工表 CREATE TABLE employ id INT PRIMARY KEY ename VARCHAR 20 deptId INT 2 插入员工数据 INSER
  • NodeJs的应用场景及实践

    前几天看到一篇文章 据说是WordPress4 3将用NodeJs重写 着实让人有点惊讶 后来了解到 其实并不是完全摒弃PHP 而是由NodeJs重写部分核心类 具体文章链接来源 附上链接 WordPress 4 3 将用 Node js
  • 驱动怎么学

    1 什么是驱动 1 1理解驱动的概念 1 驱动一词的字面意思 驱动就是让一个东西动起来 给一个东西动力 让它动起来 2 物理上的驱动 比如 一个球放在那儿没动 你踢了一下它 给了它一个力 给了力之后它就能动 就说明你驱动了它 这就是物理学上
  • 召唤神龙无敌版,轻松召唤神龙~

    还在被鲨鱼围着追吗 快来试试无敌版轻松通关 最新召唤神龙无敌版 地址 http minigame suyiboke com zhaohuanshenlongwdb index html 备用地址 推荐 https suyiboke com
  • osg与opengl中向量、矩阵的区别

    osg中的向量是行向量 矩阵相应也是与行向量对应 v M 矩阵最后一行对应的是平移 其它行列对应旋转和缩放 对角线元素值对应缩放值 inline void Matrixd preMultTranslate const Vec3d v for
  • GENERIC NETLINK 介绍及使用

    之前一篇博文讲述了Netlink如何使用 当时我们是自己定义了一种协议NETLINK TEST进行用户进程和内核的通信 这篇文章就讲一下如何使用内核为我们提供的NETLINK GENERIC进行通信 如果把Netlink协议比作IP层 那么
  • 从GitHub火到了博客,共计1658页的《Java岗面试核心MCA版》,拿走不谢

    2019年我凭借一份 Java面试核心知识点 成功拿下了阿里 字节 小米等大厂的offer 两年的时间 为了完成我给自己立的flag 拿下一线互联网企业offer大满贯 即使在职也一直在不断的学习与备战面试中 不得不说程序员除了做项目之外
  • 华为8月8日将推出系统云翻新功能:P40/Mate 30系列首发

    7月28日消息 7月28日消息 华为终端公司近日在微博上发布重要公告 宣布将于8月8日推出全新的系统云翻新功能 据悉 该功能将首次应用于华为 P40 系列手机和 Mate30 系列手机 为用户提供更便捷的手机数据备份和恢复体验 系统云翻新功
  • 在ubuntu上安装Ocaml的RPM包的一点经验

    今天想在ubuntu上安装ocaml 3 10 1 1 fc7 src rpm 遇到了一些问题 其实很简单 但是记录下来防止以后忘了 如果输入 sudo apt get install alien ocaml 3 10 1 1 fc7 sr
  • Linux环境下MySQL的数据目录

    MySQL的数据目录 数据库文件的存放路径 MySQL数据库文件的存放路径 var lib mysql mysql gt show variables like datadir Variable name Value datadir var
  • sqlserver链接服务器实现远程联库查询

    1 新建链接服务器 使用SQL Server Management Studio 右键新建链接服务器 在 常规 页面下输入链接服务器名 选择服务器类型为SQL Server 这里看个人需要 在 安全性 页面下选择 使用此安全上下文进行连接
  • 怎样通过一根网线,一台电脑,做到月入过万。

    赚钱 就是开眼 复制 创新 规模 什么是 开眼 看足够多的案例信息 什么是 复制 将底层逻辑为我所用 什么是 创新 取其精华 去其糟粕 什么是 规模 抓住机会 快马加鞭 今天就把我的人脉圈里 做得比较优秀的朋友介绍给大家 希望能给你们带来一
  • 航天生物计算机作文,我与航天作文

    我与航天作文 一觉醒来 又是美好的一天 按照惯例 起床 穿衣服 咦 我的衣服呢 诶 我怎么不在家里 我拖着沉重的眼皮环视四周 咦 怎么都是陨石呢 我发现我已经置身与太空中 并且可以呼吸 我看到了星河 太阳 地球据说 火星上有生命体 但不能肯
  • 用VB调用Webservice

    关键字 VB WebService C 调试环境 vb6 sp5 Vs net 2005 SOAP Toolkit 3 0 在VB中调用Webservice先要安装Soap Toolkit 可以到微软的网站上下载 下载地址为 http ww
  • 在linux系统中离线安装postgresql和postgis亲测可用

    离线用到的包 百度链接 https pan baidu com s 14baq72bveIWMbN89tvEgXQ 提取码 573f 我是把防火墙关了的 方便连接数据库 关闭防火墙 systemctk stop firewalld 一 离线

随机推荐