Qt 之 去除窗口部件被选中后的焦点虚线框

本文介绍了在Qt界面中如何去除部件被选中后的焦点虚线框,详细讲解了focusPolicy属性和通过设置样式来实现无虚线框的效果,提供了代码示例和两种不同的解决方案。
摘要由CSDN通过智能技术生成

一、简述

十一月已去,迎接了2016年的最后一个月。
很惭愧,十一月份就写了四篇博客,十二月好好加油,争取一天一篇。

今天就先讲一讲一个简单的问题,在界面中如果有按钮,复选框、单选框等部件,我们按Tab键时会出现一个与部件相同大小的矩形虚线框,覆盖在部件上。有时候可能我们并没有在意这个细节,但是有时候这个矩形虚线框会影响界面的美观,降低了界面的颜值


先看一下如何会出现矩形虚线框

这里写图片描述

我们看上图无论我们怎么点击按钮(左边四个为按钮,加了背景色)或者其他部件,都没有出现矩形虚线框。这是为什么呢?

再看下面。

这里写图片描述

我们看到点击部件并没有

`QTableView` 是 Qt 库中的一个用于显示表格数据的组件。默认情况下,当用户选择某个单元格时,会有一条虚线显示选中区域。若想移除这一效果,可以通过修改 `QTableView` 的样式表 (style sheet) 来达到目的。 以下是通过设置样式表来移除选中虚线的步骤: ### 步骤 1: 获取 QTableView 实例 首先,你需要有一个 `QTableView` 实例。假设这个实例已经存在于你的界面中,并命名为 `tableView`。 ```cpp QTableView *tableView = // ... 初始化你的 QTableView 代码 ``` ### 步骤 2: 设置样式表 接着,你可以通过以下代码设置样式表来移除虚线: ```cpp QString styleSheet = "QTableView::item:selected { border: none; }"; tableView->setStyleSheet(styleSheet); ``` 在这个样式表中,我们使用了 CSS 类型的选择符 `QTableView::item:selected`。这里的 `::` 表示这是一个内部选择符,它指定的是特定元素的子元素。在此处,`::item` 指定了 `QTableView` 中的每个项目 (`QTableWidget::item`) 被选择时的行为。然后我们设置了边属性 `border` 为空字符串 `""`,以此来移除被选择项的边。 ### 步骤 3: 确保样式有效应用 为了确保你的样式改变能立即生效并应用到所有后续的操作上,你可以在应用或者重绘视图的时候直接设置样式表。如果需要在运行时动态更新,可以考虑在信号槽连接中完成此操作,例如 `tableView->selectionChanged()` 信号。 ### 相关问题: 1. **如何自定义 QTableView 的行高和列宽?** - 可以通过设置 `horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch)` 和 `verticalHeader()->setDefaultSectionSize(高度值)` 来调整宽度和行高。 2. **QTableView 如何添加垂直滚动条?** - 默认情况下,`QTableView` 就有垂直滚动条。若未自动出现,可以检查控件布局是否限制其可见性,或者代码中是否存在错误导致其未正常加载。 3. **如何禁用 QTableView 的编辑功能?** - 通过设置 `tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);` 来关闭编辑触发机制即可。 通过上述方法,你可以有效地控制 `QTableView` 的外观,包括移除选中项的虚线
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值