سؤال

سؤال يقول كل شيء كيف ترفع وانخفاض [تغيير مواقف] 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);
}

هنا لديك رمز لتحريك عنصر. من هذا يجب أن تكون قادرا على العثور على كيفية نقله في أي وقت من الأوقات :)!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top