這個項目做的軟件是在平板上跑的,如果點擊按鈕或者文本框,周圍會出現一個焦點虛框,比較難看,網上對於去除Qt控件周圍的焦點虛框的方法不多,其中一個是寫一個類,在main函數裏面執行,可以去除所有控件的焦點框,我看了一下,太麻煩了,還是用代碼。
後來在 stackoverflow 問答網站上發現有人用同樣的問題,解決辦法是用qss,一句話搞定。我試過之後確實可以去掉所有控件的焦點框。
- QWidget:focus{outline: none;} /*remove all QWidget's focus border*/
上面的QSS代碼去除所有QWidget及其子控件的焦點虛框,也就是繼承QWidget的空間焦點虛框都被影藏了。
如果只想去電QPushButton的焦點虛框可以吧QWidget改成QPushButton即可,同理適用於QLineEdit等其他控件。
效果圖如下,按鈕被選中後周圍沒有焦點虛框:
怎麼樣,簡單吧。
另附一種
這裏介紹個簡單方法,qss中加入:
-
QPushButton:focus{padding: -1;} // 具體負多少可以調節