关于样式单颜色加载疑问

lwei2 2021-04-20 09:55:06
各位大佬,请问为什么QLineEdit setStyleSheet在样式单里设置的color颜色后,提示语会比实际淡很多?有什么办法使它显示原来的颜色吗?

QLineEdit *m_editFirst = new QLineEdit(this);
m_editFirst->setStyleSheet("QLineEdit{background:transparent;border-image:url(:/res/lineEditBkg.png);border-style:solid;color:#003DA6;padding-left: +8px;border-color:#232423;font:""SimHei"";font-size:11px;}");
如下截图:

截图中的提示语的颜色比实际QLineEdit的样式单里的color:#003DA6这个颜色淡很多,有什么办法让它显示原来的颜色吗?
...全文
589 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-08
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10794527.html
  • 打赏
  • 举报
回复
引用 8 楼 lwei2 的回复:
引用 7 楼 mideum 的回复:
???你问的不就是提示语吗?
表面上是提示语,但实际上是样式单在加载颜色时,为什么提示语显示的颜色和实际颜色相差较大,即实际加载的出来的颜色会比真实颜色还淡许多!
显示个图标再disable图标还会自己变灰呢 既然是提示语一般都会跟正常文字有区别显示的,估计是显示的时候拿当前文字的颜色再把透明度改了下才绘制的。 没必要太纠结这种东西,要么去研究下源码,要么就忽略这个细节,要么就绕过去采用自己敲代码实现提示语
lwei2 2021-04-21
  • 打赏
  • 举报
回复
引用 7 楼 mideum 的回复:
???你问的不就是提示语吗?
表面上是提示语,但实际上是样式单在加载颜色时,为什么提示语显示的颜色和实际颜色相差较大,即实际加载的出来的颜色会比真实颜色还淡许多!
mideum 2021-04-21
  • 打赏
  • 举报
回复
???你问的不就是提示语吗?
mideum 2021-04-20
  • 打赏
  • 举报
回复
color是设的往里面打字时候显示的颜色啊,Qt默认的placeholder颜色就是给color加上128alpha的透明度
从stylesheet的文档里看好像没有可以设置PlaceholderText的地方
你实在要设就用QPalette(看QPalette文档5.12以前的版本还是写死的,5.12以后才能设)
lwei2 2021-04-20
  • 打赏
  • 举报
回复
引用 5 楼 mideum 的回复:
你是用的5.12以后版本吗,不是ToolTipText是PlaceholderText 另外palette跟stylesheet的color可能会有冲突的,尽可能只用一种 还有在初始的时候最好是QPalette palette = m_editFirst->palette()拿到原来的palette 然后再设置
我用的是5.14.1,PlaceholderText 这个不是用来显示提示语吗?我在用palette这个时,会把stylesheet的color删除。 好吧,我再试试,多谢指点。
mideum 2021-04-20
  • 打赏
  • 举报
回复
你是用的5.12以后版本吗,不是ToolTipText是PlaceholderText
另外palette跟stylesheet的color可能会有冲突的,尽可能只用一种
还有在初始的时候最好是QPalette palette = m_editFirst->palette()拿到原来的palette 然后再设置
lwei2 2021-04-20
  • 打赏
  • 举报
回复
引用 1 楼 mideum 的回复:
color是设的往里面打字时候显示的颜色啊,Qt默认的placeholder颜色就是给color加上128alpha的透明度 从stylesheet的文档里看好像没有可以设置PlaceholderText的地方 你实在要设就用QPalette(看QPalette文档5.12以前的版本还是写死的,5.12以后才能设)
刚刚试过QPalette QBrush myBrush; QPalette palette; myBrush = QBrush(QColor(0, 61, 166, 120),Qt::SolidPattern); palette.setBrush( QPalette::ToolTipText, myBrush); m_editFirst->setPalette(palette); 不过效果还是一样,还是很感谢你的解答。
lwei2 2021-04-20
  • 打赏
  • 举报
回复
引用 1 楼 mideum 的回复:
color是设的往里面打字时候显示的颜色啊,Qt默认的placeholder颜色就是给color加上128alpha的透明度 从stylesheet的文档里看好像没有可以设置PlaceholderText的地方 你实在要设就用QPalette(看QPalette文档5.12以前的版本还是写死的,5.12以后才能设)
好的,我这就试试看,多谢指点了。

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧