• 4094阅读
  • 4回复

Qt qss中如何可以实现控件的样式更新? [复制链接]

上一主题 下一主题
离线dwx1011
 

只看楼主 倒序阅读 楼主  发表于: 2015-07-24
— 本帖被 toby520 从 新闻资讯 移动到本区(2015-07-24) —
各位大侠,请教一个问题qss中如何可以实现控件的样式更新?

例如,有以下的一个应用场景:
一个QLineEdit 输入框:
当焦点失去后,会对之进行校验是否符合要求,如果不符合,这个输入框颜色等样式发生变化:

qss如下:
/* --------------------QLineEdit--------------------------*/
QLineEdit{border:1px solid #ddd;    width:100%;font-size:14px;height:24px;line-height:24px;padding:4px;}
QLineEdit{border:1px solid #bbb;}
QLineEdit{border:1.3px solid #3bb4f2;}
QLineEdit:disabled,QLineEdit:disabled:focus{background-color:#ededed;border-color:#ddd;}
//////////这个是关键的地方
QLineEdit:如果是错误的话{background-color:#fbe2e2;border-color:#c66161;color:#c00;}




问题:应该如何在qss中写错误的那段标识?如何在程序中反应出这个样式?同时,当输入正确后,如何恢复正常的QLineEdit的样式?


在线等,谢谢

离线似水流年

只看该作者 1楼 发表于: 2015-07-24
检验完毕之后,根据校验结果,重新设定样式就行
离线z55716368

只看该作者 2楼 发表于: 2015-07-24
你应该发帖到Qt基础编程里面去
每一个问题 都是一次进步
离线dwx1011

只看该作者 3楼 发表于: 2015-07-24
回 似水流年 的帖子
似水流年:检验完毕之后,根据校验结果,重新设定样式就行 (2015-07-24 11:49) 

您好,怎么重新设定呢? 样式 我还是希望能在qss文件里面定义的。。
离线dwx1011

只看该作者 4楼 发表于: 2015-07-30
回 似水流年 的帖子
似水流年:检验完毕之后,根据校验结果,重新设定样式就行 (2015-07-24 11:49) 

现在我针对样式设置了一个属性:
QLineEdit[stated="true"]{background-color:#fbe2e2;border-color:#c66161;color:#c00}

如果在程序刚开始加载的时候,我设置setProperty("stated",true);,则这个控件就显示这个样的样式,
但是如果一开始QLineEdit的stated属性是false,然后我通过点击按钮后设置stated= true;则这个控件一点反应没有,
请问这个是为什么?我应该还是少一一些操作。。麻烦您了。
快速回复
限100 字节
 
上一个 下一个