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

QComboBox添加样式后,编辑栏背景一直白色问题解决方法。

一、QComboBox样式

/* 未下拉时,QComboBox的样式 */
QComboBox {border: 1px solid gray;   /* 边框 */border-radius: 3px;   /* 圆角 */padding: 1px 18px 1px 3px;   /* 字体填衬 */color: #000;font: normal normal 15px "Microsoft YaHei";background: transparent;
}/* 设置为可编辑(setEditable(true))editable时,编辑区域的样式 */
QComboBox:editable {background: green;
}/* 设置为非编辑(setEditable(false))!editable时,整个QComboBox的样式 */
QComboBox:!editable {background: blue;
}/* 设置为可编辑editable时,点击整个QComboBox的样式 */
QComboBox:editable:on {background: green;
}/* 设置为非编辑!editable时,点击整个QComboBox的样式 */
QComboBox:!editable:on {background: blue;
}/* 设置为可编辑editable时,下拉框的样式 */
QComboBox::drop-down:editable {background: lightblue;
}/* 设置为可编辑editable时,点击下拉框的样式 */
QComboBox::drop-down:editable:on {background: lightgreen;
}/* 设置为非编辑!editable时,下拉框的样式 */
QComboBox::drop-down:!editable {background: lightblue;
}/* 设置为非编辑!editable时,点击下拉框的样式 */
QComboBox::drop-down:!editable:on {background: lightgreen;
}/* 下拉框样式 */
QComboBox::drop-down {subcontrol-origin: padding;   /* 子控件在父元素中的原点矩形。如果未指定此属性,则默认为padding。 */subcontrol-position: top right;   /* 下拉框的位置(右上) */width: 15px;   /* 下拉框的宽度 */border-left-width: 1px;   /* 下拉框的左边界线宽度 */border-left-color: darkgray;   /* 下拉框的左边界线颜色 */border-left-style: solid;   /* 下拉框的左边界线为实线 */border-top-right-radius: 3px;   /* 下拉框的右上边界线的圆角半径(应和整个QComboBox右上边界线的圆角半径一致) */border-bottom-right-radius: 3px;   /* 同上 */
}/* 越过下拉框样式 */QComboBox::drop-down:hover {background: yellow;}
/* 下拉箭头样式 */QComboBox::down-arrow {width: 15px; /* 下拉箭头的宽度(建议与下拉框drop-down的宽度一致) */background: transparent; /* 下拉箭头的的背景色 */padding: 0px 0px 0px 0px; /* 上内边距、右内边距、下内边距、左内边距 */image: url(:/images/combobox_arrow_down.png);} /* 点击下拉箭头 */QComboBox::down-arrow:on { image: url(:/images/combobox_arrow_up.png); /* 显示上拉箭头 */}

二、QComboBox修改样式后,编辑栏背景一直白色问题。如何解决?

使用重新加载内存中的QSS样式。
Qt中继承QWidget的控件存在一个获取QStyle指针的函数style(),该函数返回的指针对象包含unpolish(QWidget *widget) 和polish(QWidget *widget)两个方法,使用这两个方法可以将QSS的样式可将已设置的样式进行卸载和样式重新加载(初始化),然后使用update()函数更新
       

combox->style()->unpolish(combox);  //卸载bcombox之前的QSS样式
combox->style()->polish(combox);    //重新加载(初始化)combox的样式
combox->update();     //加载combox的新样式

http://www.lryc.cn/news/109463.html

相关文章:

  • vue动态绑定多个class以及带上三元运算或其他条件
  • Rpc原理
  • yapi容器化docker部署以及mongodb容器的持久化挂载异常问题
  • MyBatis-XML映射文件
  • C++类和对象入门(下)
  • 安卓:实现复制粘贴功能
  • jenkins pipeline项目
  • 机器学习笔记 - YOLO-NAS 最高效的目标检测算法之一
  • Grafana集成prometheus(3.Grafana添加promethus数据)
  • flutter开发实战-实现首页分类目录入口切换功能
  • 基于粒子群改进BP神经网络的时间序列预测,pso-bp时间序列预测
  • std::string和std::wstring无法前向声明
  • 论文阅读-Neighbor Contrastive Learning on Learnable Graph Augmentation(AAAI2023)
  • PostgreSql 进程及内存结构
  • Elasticsearch 常用 HTTP 接口
  • games106 homework1实现
  • Pytorch使用VGG16模型进行预测猫狗二分类
  • 安装nvm使用nvm管理node切换npm镜像后使用vue ui管理构建项目成功
  • 在线LaTeX公式编辑器编辑公式
  • 【C、C++】学习0
  • python GUI nicegui初识一(登录界面创建)
  • 【单片机】51单片机串口的收发实验,串口程序
  • 【bug】记录一次使用Swiper插件时loop属性和slidersPerView属性冲突问题
  • 云原生应用里的服务发现
  • 【零基础学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流
  • 运输层---概述
  • 高速公路巡检无人机,为何成为公路巡检的主流工具
  • 仓库管理系统有哪些功能,如何对仓库进行有效管理
  • Java 比Automic更高效的累加器
  • antDv table组件滚动截图方法的实现