当前位置 博文首页 > fearlazy:如何去除QTableWidget表格选中Item时的虚线框?

    fearlazy:如何去除QTableWidget表格选中Item时的虚线框?

    作者:[db:作者] 时间:2021-06-17 15:44

    默认情况下QTableWidget单元格选中时会有一个虚线框,如下图所示:

    ?

    有这个虚线框的存在很是影响美观,尤其是在写了样式表的时候特别明显。那么该如何去除该虚线框呢?

    ?

    方法1:

    设置表格不获取焦点。

    table->setFocusPolicy(Qt::NoFocus);

    ?

    这种方法简单粗暴,缺点就是这样设置后没法使用与focus状态相关的功能,如不能使用tab键切换选中的单元格。

    ?

    方法2:

    使用样式表,设置outline为none,并且设置item的样式。

    ?

    使用样式表方式很灵活,很适合自定义表格外观的情况。

    ?

    方法3:

    使用代理。 从QStyledItemDelegate派生一个类TableDelegate, 然后重写paint函数。

    ?

    代码的目的是通过改变option的值,在绘制前去掉focus状态,这样在绘制表格时就不会绘制虚线框了。最后为表格设置代理,代码如下:

    ?

    使用代理更适合实现更高级的功能,如果只是单纯为了去除虚线框的话,这样操作就略显麻烦了。

    ?

    说明:??文章首发于fearlazy的博客,文章中发现的错误或者内容补充将只能在博客中更新。

    下一篇:没有了