QT QTableWidget不可编辑

本文详细介绍了如何在QAbstractItemView中设置编辑触发器为NoEditTriggers,适用于需要禁用编辑功能的场景。
setEditTriggers(QAbstractItemView::NoEditTriggers);
Qt 中,如果你想让 `QTableWidget` 不可点击(即用户无法选择或编辑其中的单元格),可以通过几种方式进行设置。 ### 禁用整个表格的选择功能 如果你不想让用户能够选中任何行或列,可以在创建完 `QTableWidget` 后使用以下代码禁用选择模式: ```cpp ui->tableWidget->setSelectionMode(QAbstractItemView::NoSelection); ``` 这会使得表格内的所有项都无法被选中。 ### 设置表单项为只读 为了让所有的单元格变为只读状态,防止用户对它们进行编辑,你可以遍历每一个单元格并将每个项目的标志设为不可编辑: ```cpp for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { for (int col = 0; col < ui->tableWidget->columnCount(); ++col) { QTableWidgetItem *item = ui->tableWidget->item(row, col); if (item != nullptr) { // 检查是否为空指针 item->setFlags(item->flags() & ~Qt::ItemIsEditable); } } } ``` 或者你也可以在向表格添加项目的时候就指定该项是不可编辑的: ```cpp QTableWidgetItem *item = new QTableWidgetItem("Text"); item->setFlags(item->flags() & ~Qt::ItemIsEditable); ui->tableWidget->setItem(row, column, item); ``` 这样做不仅能让现有项目成为只读形式,在后续新增加项目时也同样保持这一特性。 以上两种方法结合起来就能有效阻止用户与 `QTableWidget` 进行交互了。当然,还可以考虑直接将 widget 的 enabled 属性关闭 (`setEnabled(false)`),但这会使整个控件灰显并且看起来像是处于非活动状态。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值