在QTableWidget中如何设置只让某一列可编辑

您所在的位置:网站首页 qtablewidget双击可编辑 在QTableWidget中如何设置只让某一列可编辑

在QTableWidget中如何设置只让某一列可编辑

2023-12-26 19:43| 来源: 网络整理| 查看: 265

在QTableWidget中如何设置只让某一列可编辑

可以通过QTableWidget的setItem()方法以及Qt的ItemFlags枚举来设置QTableWidgetItem的属性,从而实现只让某一列可编辑的功能。

具体步骤如下:

遍历QTableWidget的所有行,对于每一行的某一列设置相应的ItemFlags属性。ItemFlags属性是一个位掩码枚举,可以包含多个选项,其中包括Qt::ItemIsEditable,表示该项可编辑,Qt::ItemIsSelectable,表示该项可选择,Qt::ItemIsEnabled,表示该项可用。我们只需要设置Qt::ItemIsEditable选项即可。通过QTableWidgetItem的setFlags()方法设置该表格项的属性。

以下是示例代码1:

# 仅让第二列可编辑 for i in range(tableWidget.rowCount()): item = tableWidget.item(i, 1) if item is not None: item.setFlags(item.flags() | Qt.ItemIsEditable)

以下是示例代码2:

//设置全部可编辑 tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged); //再一列列禁编辑 Utils::setEditTriggersForColumn(tableWidget,5,0); //Utils::setEditTriggersForColumn(tableWidget,5,1); Utils::setEditTriggersForColumn(tableWidget,5,2);

其中setEditTriggersForColumn方法如下

void Utils::setEditTriggersForColumn(QTableWidget *tableWidget, int rowCount, int column) { for(int i=0;iitem(i,column); item->setFlags(item->flags() & ~Qt::ItemIsEditable); } }

其中,tableWidget是一个QTableWidget对象,通过调用它的rowCount()方法和item()方法来遍历表格的所有行和列,从而获取每个表格项,并设置相应的属性。

QTableView中如何设置只让某一列可编辑

如果是QTableView,类似的,可设置全部可编辑,再设置禁止其他几列。

tableView->setEditTriggers(QAbstractItemView::CurrentChanged);//编辑模式 QStandardItem *item0 = new QStandardItem("第一列"); item0->setEnabled(false); m_model->setItem(0, 0, item0); 设置代理的方式

单元格较多时,QTableView还可以设置代理的方式实现

tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged); QWidget* ReadOnlyItemDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const { return nullptr; } //限制某行某列不可编辑 ui->tableView->setItemDelegateForRow(row, new ReadOnlyItemDelegate()); ui->tableView->setItemDelegateForColumn(column, new ReadOnlyItemDelegate()); ui->tableWidget->setItemDelegateForRow(row, new ReadOnlyItemDelegate()); ui->tableWidget->setItemDelegateForColumn(column, new ReadOnlyItemDelegate()); 参考

QTableWidget、QTableView单元格设置不可编辑的几种方法及使用场景 INSCODE AI 创作助手



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3