QTreeView::dropMimeData - 为新 child 设置值
QTreeView::dropMimeData - setting values for a new child
我正在尝试将一些 MIME 编码的文本拖放到树视图中。它正在工作 - 调用了 dropMimeData() 方法,我可以将 mime 数据解码为丢弃的字符串,我可以将 child 插入到视图中显示的模型中,但是......我可以'找到一种方法将新 item/row 的文本值设置为拖放的字符串(或与此相关的任何字符串)。
这是我在 dropMimeData() 方法中尝试过的一些代码:
if ( ( row == -1) && (column == -1) && parent.isValid() ) {
int mdlidx = this->data(parent, Qt::DisplayRole).ModelIndex;
qDebug() << "mdlidx: " << mdlidx;
// treet text - the text of the cell that gets dropped onto
QString tt = this->data(parent, Qt::DisplayRole).toString();
qDebug() << "tree text: " << tt;
TreeItem *item = this->getItem(parent);
int ccnt = item->childCount();
qDebug() << "ccnt: " << ccnt ;
if ( item->insertChildren(0, 1, 0) ) {
qDebug() << "Child Inserted";
// how do I access the new child item here ???
} else {
qDebug() << "Failed";
}
如何访问新的 child 项以设置在视图中可见的文本?
我正在使用 QStandardItemModel,如果这有什么不同的话。
我的解决方案是创建一个信号和插槽 - 我在 dropMimeData() 方法中表达信号,插槽位于具有视图和模型的代码的一部分中,因此可以轻松更新模型.
我使用信号发送 mime 数据和父项。
我不确定这样做是否正确,但它确实有效。
我正在尝试将一些 MIME 编码的文本拖放到树视图中。它正在工作 - 调用了 dropMimeData() 方法,我可以将 mime 数据解码为丢弃的字符串,我可以将 child 插入到视图中显示的模型中,但是......我可以'找到一种方法将新 item/row 的文本值设置为拖放的字符串(或与此相关的任何字符串)。
这是我在 dropMimeData() 方法中尝试过的一些代码:
if ( ( row == -1) && (column == -1) && parent.isValid() ) {
int mdlidx = this->data(parent, Qt::DisplayRole).ModelIndex;
qDebug() << "mdlidx: " << mdlidx;
// treet text - the text of the cell that gets dropped onto
QString tt = this->data(parent, Qt::DisplayRole).toString();
qDebug() << "tree text: " << tt;
TreeItem *item = this->getItem(parent);
int ccnt = item->childCount();
qDebug() << "ccnt: " << ccnt ;
if ( item->insertChildren(0, 1, 0) ) {
qDebug() << "Child Inserted";
// how do I access the new child item here ???
} else {
qDebug() << "Failed";
}
如何访问新的 child 项以设置在视图中可见的文本?
我正在使用 QStandardItemModel,如果这有什么不同的话。
我的解决方案是创建一个信号和插槽 - 我在 dropMimeData() 方法中表达信号,插槽位于具有视图和模型的代码的一部分中,因此可以轻松更新模型.
我使用信号发送 mime 数据和父项。
我不确定这样做是否正确,但它确实有效。