سؤال

لدي qtreewidget يمكنني إدراج العناصر فيها، ويمكن للمستخدم تحديد عمود لفرزه. نظرا لأن العناصر يتم إدراجها، فإنها مجرد إلحاحا حتى النهاية بدلا من القيام بالفرز تلقائيا. إذا قمت بالنقر فوق الرأس للتبديل بين تصاعدي / تنازلي، فسوف فرز العناصر الحالية.

أحسب أنني أمكنني استدعاء SortiTems () واستخدم العمود الذي يتم إرجاعه من SortColumn ()، لكنني غير قادر على معرفة كيف يمكنني معرفة ما إذا كان المستخدم يقوم بترتيب تصاعدي أو تنازلي.

أنا لست قلقا بشأن كفاءة هذا، لذلك لا أريد الانتظار حتى يتم الإدراج ثم القيام بهذا النوع. أريد قائمة فرزها في الوقت الفعلي.

شكرًا!

هل كانت مفيدة؟

المحلول

إذا تم استدعاء عنصر واجهة المستخدم الخاصة بك Treewidget، يجب أن تكون قادرا على استدعاء طريقة الرأس ()، والتي هي من QTREEWIDGET's Partment's Partment qtreeview، ثم SortInticatororder () من فئة Qheaderview:

treeWidget->header()->sortIndicatorOrder()

مع هذا، أنت تعرف ترتيب الفرز الحالي للمستخدم، ويمكنك تطبيق فرزك على إدراجها وفقا لهذا.

نصائح أخرى

ليس لدي إعداد لاختبار ولكن وفقا للوثائق، يجب أن يتسبب ذلك في إجراء الفرز حيث يتم إدراج العناصر.

...
treeWidget.sortByColumn(0, Qt::AscendingOrder); // column/order to sort by
treeWidget.setSortingEnabled(true);             // should cause sort on add

توصي QT ضد القيام بذلك حيث سيكون هناك تكلفة أداء وتقول أنه يجب عليك تعيين فرز ممكن بعد إكمال جميع الوضوح. أتمنى أن يساعدك هذا.

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