سؤال

أنا أستعمل QTableView + QStandardItemModel لإظهار بعض البيانات (البيانات المخزنة في بعض بنية البيانات الأخرى) ، وعرض الجدول هذا غير قابل للفرز.

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

جربت الإشارة التي تم النقر عليها ، لكنها تنبعث فقط من صف البيانات ، وليس لـ HeaderData. ماذا علي أن أفعل إذا أردت أن أفعل شيئًا آخر أثناء فرز QtableView + QStandardItemModel ?

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

المحلول

يمكن الحصول على رأس المنظر

QHeaderView * QTableView::horizontalHeader () const

الآن مع الحصول عليها QHeaderView, ، يمكنك توصيل فتحة بالإشارة ،

void QHeaderView::sectionClicked ( int logicalIndex )   [signal].

من وثائق QT 4.5 ، تنبعث هذه الإشارة عند النقر فوق قسم. يتم تحديد الفهرس المنطقي للقسم بواسطة logicalIndex.note بأن الإشارة المسلحة سيتم أيضًا تنبعثها.

أتمنى أن يساعد ذلك.

نصائح أخرى

عرض الرأس المذكور أعلاه لديه إشارة sortIndicatorChanged(int, Qt::SortOrder) لذلك قد يكون من الأذكى استخدامه

أيضا ، قد ترغب في إلقاء نظرة على QSortFilterProxyModel مزيد من التفاصيل هنا http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details

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