- 使用设置成setFocusPolicy(Qt::NoFocus); 这样就可以实现点击无焦点了
- 使用qss的方式在样式文件中添加 *{outline:0px;} 或者 qApp->setStyleSheet(“*{outline:0px;}”); 设置全局样式
- 使用重写QProxyStyle方式实现 : #include <QProxyStyle>
class NoFocusRectStyle : public QProxyStyle {
public:
NoFocusRectStyle(QStyle *baseStyle) : QProxyStyle(baseStyle) {}
void drawPrimitive(PrimitiveElement element,
const QStyleOption *option,
QPainter *painter,
const QWidget *widget = 0) const {
if (element == QStyle::PE_FrameFocusRect) {//这里不做任何操作,Qt默认是绘制矩形虚线框
return;
}
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
NoFocusRectStyle *style = new NoFocusRectStyle(a.style());
a.setStyle(style);
Widget w;
w.show();
return a.exec();
} - 参考两位大神:
Qt 关于去除虚线框的三种方法
最新推荐文章于 2023-01-30 10:56:16 发布