原文出自博客 :
http://www.hookr.cn/implement-qt-switched-to-the-relevant-page-the-corresponding-page-button-qpushbutton-selected-results.html欢迎大家访问交流
这个项目做的软件是在平板上跑的,如果点击按钮或者文本框,周围会出现一个焦点虚框,比较难看,网上对于去除Qt控件周围的焦点虚框的方法不多,其中一个是写一个类,在main函数里面执行,可以去除所有控件的焦点框,我看了一下,太麻烦了,还是用代码。
后来在 stackoverflow 问答网站上发现有人用同样的问题,解决办法是用qss,一句话搞定。我试过之后确实可以去掉所有控件的焦点框。
//但是,outline 属性在Qt文档里面貌似找不到?
上面的QSS代码去除所有QWidget及其子控件的焦点虚框,也就是继承QWidget的空间焦点虚框都被影藏了。
如果只想去电QPushButton的焦点虚框可以吧QWidget改成QPushButton即可,同理适用于QLineEdit等其他控件。
效果图如下,按钮被选中后周围没有焦点虚框:
怎么样,简单吧。
这个项目做的软件是在平板上跑的,如果点击按钮或者文本框,周围会出现一个焦点虚框,比较难看,网上对于去除Qt控件周围的焦点虚框的方法不多,其中一个是写一个类,在main函数里面执行,可以去除所有控件的焦点框,我看了一下,太麻烦了,还是用代码。
后来在 stackoverflow 问答网站上发现有人用同样的问题,解决办法是用qss,一句话搞定。我试过之后确实可以去掉所有控件的焦点框。
复制代码
- QWidget:focus{outline: none;} /*remove all QWidget's focus border*/
上面的QSS代码去除所有QWidget及其子控件的焦点虚框,也就是继承QWidget的空间焦点虚框都被影藏了。
如果只想去电QPushButton的焦点虚框可以吧QWidget改成QPushButton即可,同理适用于QLineEdit等其他控件。
效果图如下,按钮被选中后周围没有焦点虚框:
![](https://i-blog.csdnimg.cn/blog_migrate/82b0cc8ca02f74f825cb19aace66880e.jpeg)
怎么样,简单吧。
另附一种
这里介绍个简单方法,qss中加入:
- QPushButton:focus{padding: -1;} // 具体负多少可以调节