رفع وانخفاض qtreewidgetitem في qtreewidget؟
-
19-09-2019 - |
سؤال
سؤال يقول كل شيء كيف ترفع وانخفاض [تغيير مواقف] qtreewidgetitems في qtreewidget،
المحلول
أعتقد أنك ستحتاج إلى استخدام كائن نموذجي لتتمكن من التعامل مع مواقع العناصر (إذا كان هذا ما تريد القيام به). يرجى التحقق من مثال أدناه؛ يتحرك العنصر الأول من نموذج مجردة إلى الأسفل.
QAbstractItemModel* model = your_tree_view->model();
QModelIndex index0 = model->index(0, 0);
QMap<int, QVariant> data = model->itemData(index0);
// check siblings of the item; should be restored later
model->removeRow(0);
int rowCount = model->rowCount();
model->insertRow(rowCount);
QModelIndex index1 = model->index(rowCount, 0);
model->setItemData(index1, data);
بمجرد تحريك العنصر في النموذج، يجب تحديث عنصر القطعة TreeView الخاص بك وفقا لذلك
في حال كنت بحاجة إلى تغيير حجم العنصر الموضح من خلال تثبيت TreeView الخاص بك مفوض البند وتجاوز ذلك Sizehint. طريقة
آمل أن يساعد هذا فيما يتعلق
نصائح أخرى
لقد وجدت حلا سيرج أن يكون معقدا جدا أيضا لتحريك بسيط لأعلى / تحرك. هناك بالفعل حل أسهل جدا لهذه المشكلة لأنك تستخدم Qtreewidget:
QTreeWidgetItem* item = your_qtreewidget->currentItem();
int row = your_qtreewidget->currentIndex().row();
if (item && row > 0)
{
your_qtreewidget->takeTopLevelItem(row);
your_qtreewidget->insertTopLevelItem(row - 1, item);
your_qtreewidget->setCurrentItem(item);
}
هنا لديك رمز لتحريك عنصر. من هذا يجب أن تكون قادرا على العثور على كيفية نقله في أي وقت من الأوقات :)!