当前位置: 首页 > news >正文

Qt Designer的父子部件样式表设置学习

在Qt Designer中新建图像界面,放置两个QWidget,命名为widget_1和widget_2;两个QPushButton,pushButton_1和pushButton_2。

它们的父子从属关系如下:

设置widget_1的样式表:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

这个样式表的含义为:widget_1中,所有的QWidget都按照指定的样式表显示。

由于QPushButton是QWidget的子类,所以pushButton_1和pushButton_2被隐含修改了样式表。

有些时候,这并不是我们期望的结果,我不希望QPushButton与QWidget是同样的显示效果。

解决办法:

1、按部件类别名称改变子类的样式表:将widget_1的样式表设置为:

/*类型为QWidget的部件重新定义*/

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*类型为QPushButton的部件重新定义*/

QPushButton{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,160, 100);

}

这里,将隶属于widget_1的类型为QPushButton的所有部件全部定义了新的显示特性。

2、 按oObjectName单独改变某一个小部件的样式表:

将widget_1的样式表设置为:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*名称为pushButton_1的按钮单独定义*/

#pushButton_1{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,160, 100);

}

“#pushButton_1”的含义是将pushButton_1单独设置样式表。需要注意的是,采用这种单独设置的办法,如果被改变的对象还有子部件,子部件并不跟随父部件的改变而改变。

比如,将widget_1的样式表设置为:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*widget_2单独定义*/

#widget_2{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,160, 100);

}

单独改变了widget_2,但是隶属于widget_2的pushButton_1和pushButton_2并没有改变。

利用这个原理,就有了下面的方法:

3、将父部件单独设置样式表:

将widget_1的样式表设置为:

/*父部件widget_1单独定义*/

#widget_1{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*父部件widget_2单独定义*/

#widget_2{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,100, 160);

}

/*所有的QPushButton类定义*/

QPushButton{

background-color: lightgreen;

}

由于将两级父容器部件单独设置了样式表,所以隶属于它们的子部件不再继承父部件的样式表。

4、使用.class{}的方法:

.class{}的方法,只修改指定的类,其派生的子类不改变。

将widget_1的样式表设置为:

/*QWidget类型单独定义*/

.QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*所有的QPushButton类定义*/

QPushButton{

background-color: lightgreen;

}

5、使用后代选择器:

创建下图的父子结构:

将widget_1的样式表设置为:

/*QWidget类型单独定义*/

.QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*使用后代选择器定义widget_3的子部件QPushButton类*/

#widget_3 QPushButton{

background-color: lightgreen;

border: 2px solid black;
border-radius: 5px;

}

http://www.jsqmd.com/news/1321946/

相关文章:

  • 【N100小主机】体验不同系统
  • 成本治理与限流
  • 国产LVDT位移传感器、接触式位移传感器以及光栅位移传感器品牌哪家好?申思测控技术实力解析 - 变量人生001
  • RDPWrap终极配置指南:免费解锁Windows远程桌面多用户连接
  • Python从入门到精通 第一章(了解Python)
  • Windows窗口置顶神器:AlwaysOnTop让你的多任务效率提升300%
  • Unity AssetBundle实战指南:从打包到热更新的完整工作流
  • 创业者AI选型生死线:为什么87%的早期项目在第2个月就因API成本失控而停摆?
  • 解决UE安卓发布Google Play报错:No Google Play Store Key与OBB关联问题
  • 深入解析符号链接:原理、创建与实战应用指南
  • Segment Anything使用
  • 2026泰州姜堰管道疏通哪家好旭日管道疏通免费上门靠谱 - 余生黄金回收
  • UnityEngineAnalyzer:基于Roslyn的Unity C#静态代码分析工具实践
  • Unlock-Music完整指南:3步解密加密音乐,让所有歌曲自由播放
  • LAV Filters:Windows媒体解码的终极免费解决方案
  • 对话量子场论(DQFT)深入研究报告:从协变作用量到场动力学、共识相变与可计算量化规则
  • 终极指南:REFramework如何彻底改变RE Engine游戏模组开发体验
  • c++--面向对象特性
  • 手腕上的小手电:智能手表怎么把“绿光”变成心率
  • Unity串口通信实战:多线程安全读写与设备状态监控架构解析
  • 公证赠与怎么办理?办理公证赠与需要准备哪些资料?
  • 炉石传说脚本终极指南:3步实现智能挂机与卡组自动化测试
  • FusionCompute管理员密码丢失?后台数据库安全重置全攻略
  • 解锁Photoshop的WebP格式能力:WebPShop插件完全指南
  • 基于对话本体论的碳硅文明算符形式化模型构建方法与路径
  • Ecctrl时间控制功能:实现子弹时间与慢动作效果的完整教程
  • 上海本土SEO/GEO优化公司哪家好?靠谱服务商推荐附避坑指南 - 知汇资讯
  • 企业信用评级机构哪家好?2026年线上申请流程详解 - 跑政通
  • C++之try,throw,catch探究
  • 为什么你的AI产品图过不了平台审核?版权/光影/比例3大雷区,今天必须解决!