仅制作一列qtreewidget可编辑//故障排除
Making only one column of QTreeWidget editable // troubleshooting
注意到,这个问题不是一个问题的重复,因为提议的解决方案不起作用,因为它是qtreewidgetItem可编辑的一列。
你好,所以我只想制作我的树泳的一列。
propertyItems.push_back(new QTreeWidgetItem); //gets filled by the while-loop
propertyItems[propertyItems.size()-1]->setText(0, prop.name); //sets the text of the item
propertyItems[propertyItems.size()-1]->setText(1, prop.value);//set the text of the other item
propertyItems[propertyItems.size()-1]->setFlags(Qt::ItemIsEditable);
ui->treeWidget_3->insertTopLevelItem(ui->treeWidget_3->topLevelItemCount(), propertyItems[propertyItems.size()-1]); //appends the items
counter ++;
和
void MainWindow::onTreeWidget3ItemDoubleClicked()
{
if (ui->treeWidget_3->currentColumn() == 2) {
ui->treeWidget_3->editItem(ui->treeWidget_3->currentItem(), ui->treeWidget_3->currentColumn());
}
}
是我的方法。ontreeWidget3ItemDoubleClicked
与treeWidget::doubleClicked
连接,TreeWidget_3没有edit-triggers
但是:当我执行程序时,qtreeview只是灰色。
也就是说,我也尝试了
propertyItems[propertyItems.size()-1]->setFlags(propertyItems[propertyItem.size()].flags | Qt::ItemIsEditable);
treeWidget_3
不再灰色,但仍然是不正确的...
我该如何修复?
btw:我是QT的新手,所以我可能忘记了一些至关重要的事情。对不起,在这种情况下。
文档中提到的:
qtreewidgetItem类提供了一个与qtreewidget便利类一起使用的项目。
这意味着它将不适用于所有用例。解决方案是创建自己的模型并超载flags(const QModelIndex& index)
方法返回适当的值(基本上是仅阅读列的Qt:: ItemIsEnabled
,而Qt:: ItemIsEnabled | Qt::ItemIsEditable
则用于可编辑的列)。您可以从index.column()
获取列。
QT提供了一个从树和型号开始的示例。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 编辑文件中的文本
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- SetDlgItemInt 不会更改嵌入资源的编辑框
- QWidget::p aintEngine:不应再在 QTreeWidget 派生类中调用
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- C++,Qt:仅在双击后编辑qtablewidget项目
- 编辑字符串以包含括号 c++ 之间的变量
- Arduino函数无法编辑数组
- 如何在 QTreeWidget 中检索特定项目的 mimeData?
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- C++MFC编辑框处理双击
- 是否可以使用指针访问变量以避免直接编辑变量?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 在 c++ 中编辑注册表项
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 仅制作一列qtreewidget可编辑//故障排除
- QTreeWidget:类似于Windows资源管理器的编辑
- QTreeWidget捕获项目编辑完成,没有文本更改