要将QListView中的元素设置为只读,可以使用QStandardItemModel和QStyledItemDelegate来实现。下面是一个简单的示例代码:
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建模型
QStandardItemModel model;
// 添加数据项
QList<QStandardItem*> items;
items << new QStandardItem("Item 1") << new QStandardItem("Item 2") << new QStandardItem("Item 3");
model.appendRow(items);
// 创建视图
QListView view;
view.setModel(&model);
// 创建委托并设置为只读
QStyledItemDelegate delegate;
view.setItemDelegate(&delegate);
// 设置整个视图为只读
view.setEditTriggers(QAbstractItemView::NoEditTriggers);
// 显示窗口
view.show();
return app.exec();
}
在上述示例中,我们创建了一个QListView并通过QStandardItemModel添加了几个项目。然后,我们创建了一个QStyledItemDelegate并将其设置为视图的委托,以确保元素不可编辑。最后,我们通过setEditTriggers
函数将整个视图设置为只读。
这样就可以实现将QListView中的元素设置为只读。
内容由零声教学AI助手提供,问题来源于学员提问