• 13312阅读
  • 8回复

[QSS使用实例1] Qt中使用QSS去除 Button,LineEdit 等控件周围焦点虚框的方法 [复制链接]

上一主题 下一主题
离线chinaboyone
 

图酷模式  只看楼主 倒序阅读 楼主  发表于: 2015-09-04
原文出自我的博客 :http://www.hookr.cn/implement-qt-switched-to-the-relevant-page-the-corresponding-page-button-qpushbutton-selected-results.html 欢迎大家访问交流
这个项目做的软件是在平板上跑的,如果点击按钮或者文本框,周围会出现一个焦点虚框,比较难看,网上对于去除Qt控件周围的焦点虚框的方法不多,其中一个是写一个类,在main函数里面执行,可以去除所有控件的焦点框,我看了一下,太麻烦了,还是用代码。
后来在 stackoverflow 问答网站上发现有人用同样的问题,解决办法是用qss,一句话搞定。我试过之后确实可以去掉所有控件的焦点框。
  1. QWidget:focus{outline: none;}/*remove all  QWidget's focus border*/

上面的QSS代码去除所有QWidget及其子控件的焦点虚框,也就是继承QWidget的空间焦点虚框都被影藏了。
如果只想去电QPushButton的焦点虚框可以吧QWidget改成QPushButton即可,同理适用于QLineEdit等其他控件。
效果图如下,按钮被选中后周围没有焦点虚框:



离线clannadzy

只看该作者 1楼 发表于: 2015-09-07
还没尝试,但楼主的outline 属性在帮助文档里找不到。
离线clannadzy

只看该作者 2楼 发表于: 2015-09-07
尝试了,的确可以,先谢谢了.但是outline属性还是没有找到,楼主在哪里看到有,不能平白无故多出来的啊
离线chinaboyone

只看该作者 3楼 发表于: 2015-09-08
回 clannadzy 的帖子
clannadzy:尝试了,的确可以,先谢谢了.但是outline属性还是没有找到,楼主在哪里看到有,不能平白无故多出来的啊 (2015-09-07 23:08) 

在国外论坛 stackoverflow 中看到的,Qt的QSS的帮助文档中好像没有提到outline属性。社区好多高人,像大家学习
离线clannadzy

只看该作者 4楼 发表于: 2015-09-09
回 chinaboyone 的帖子
chinaboyone:在国外论坛 stackoverflow 中看到的,Qt的QSS的帮助文档中好像没有提到outline属性。社区好多高人,像大家学习
 (2015-09-08 15:33) 

帮助文档有待改进.难道外国工程师看了源码才发现的
离线hzm000000

只看该作者 5楼 发表于: 2015-09-09
楼主看到你做的qss很漂亮,能否把工程中用到的图片共享一下?谢谢!
离线flyer_2001

只看该作者 6楼 发表于: 2015-10-01
QT Designer 选中按钮  focusPolicy 设为NoFocus即可。或在程序中设定。
离线xgcvisions

只看该作者 7楼 发表于: 2015-10-09
离线crazy

只看该作者 8楼 发表于: 2015-10-10
多谢了,向您学习了
C/C++/Qt爱好者
邮箱: kevinlq0912@163.com
公众号: devstone
博客:http://kevinlq.com/
快速回复
限100 字节
 
上一个 下一个