公孙二狗:去掉 Windows 中控件的虚线框
在 Windows 中,控件得到焦点时会显示一个虚线框,很多时候觉得不好看,有 2 中方式去掉这个虚线框:
- 使用 StyleSheet
- 继承 QProxyStyle
使用 StyleSheet
1
|
QWidget:focus {
|
继承 QProxyStyle
继承 QProxyStyle,QStyle::PE_FrameFocusRect 时不绘制虚线框,main() 函数里调用 QApplication::setStyle() 使用新的样式:
1
|
// 文件名: NoFocusRectStyle.h
|
当 element == QStyle::PE_FrameFocusRect 时,直接返回,不绘制虚线框。
1
|
// 文件名: main.cpp
|
在 main() 函数中调用 app.setStyle(style) 使用我们上面自定义的 NoFocusRectStyle 就可以把虚线框去掉了。
https://qtdebug.com/qt-no-focus-rect/