我复制了stardelegate,stareditor和starrating来自示例http://doc.qt.io/qt-5/qtwidgets-itemviews-stardelegate-example.html的源文件和头文件,我尝试将星级评分功能实现到树小部件而不是像示例中的表小部件。星星正在显示,问题是不像前面的例子那样可编辑,实际上是整行。我的代码导致了这个:
ui->tree->setItemDelegate(new StarDelegate);
ui->tree->setItemDelegateForColumn(2, new StarDelegate);
ui->tree->setEditTriggers(QAbstractItemView::DoubleClicked | QAbstractItemView::SelectedClicked);
ui->tree->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tree->setColumnCount(3);
ui->tree->setHeaderLabels(QStringList() << "Name" << "Date" << "Rating");
请告诉我我做错了什么,谢谢。
答案 0 :(得分:3)
QTableWidget
项目默认是可编辑的,QTreeWidget
项目不是。
您必须将标记Qt::ItemIsEditable
添加到评级列中所有项目的现有标记。