禁用(灰显)QTreeView 中的某些行



我有一个(非常简单的)QTreeView显示一些行:

m_cameraModel = new QStandardItemModel(this);
QSortFilterProxyModel* cameraProxyModel = new QSortFilterProxyModel(this);
cameraProxyModel->setSourceModel(m_cameraModel);
ui.CameraTreeView->setModel(cameraProxyModel);
m_cameraModel->appendRow(new QStandardItem("Panavision"));
m_cameraModel->appendRow(new QStandardItem("Panaflex"));

在这里,我想禁用第一行"Panavision",以便它仍然可见,但无法再选择,并且以某种方式灰显,以便用户可以看到此条目未处于活动状态。

也许这是某种初学者问题,但如何做到这一点?

谢谢!

我会尝试通过以下方式做到这一点:

// Get item that corresponds to the first row
QStandardItem *item = m_cameraModel->item(0, 0);
// Disable the item.
item->setFlags(Qt::NoItemFlags);

您希望使用 QItemDelegate 类,它允许您禁用所需的行以及其他功能。在StackOverflow上有一个很好的问题,它展示了如何做一个非常基本的例子:如何在Qt项目视图中为单个单元格设置委托?

相关内容

  • 没有找到相关文章

最新更新