2
我想在數值上對數值進行排序,而不是按字母順序排列在我的QTreeWidget中。現在它是比較兩個字符串,我需要的是它作爲兩個整數進行比較。Sorting QTreeWidget
我到目前爲止有:
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QSql>
//more include...
#include <QTreeWidget>
extern QSqlDatabase db;
//more extern...
namespace Ui {
class mainwindow;
class TreeWidgetItem;
}
class TreeWidgetItem : public QTreeWidgetItem
{
Q_OBJECT
public:
TreeWidgetItem(QTreeWidget *tree) : QTreeWidgetItem(tree) {}
TreeWidgetItem(QTreeWidget * parent, const QStringList & strings)
: QTreeWidgetItem (parent,strings) {}
bool operator< (const QTreeWidgetItem &other) const
{
int column = treeWidget()->sortColumn();
return text(column).toInt() < other.text(column).toInt();
}
};
class mainwindow : public QMainWindow
{
Q_OBJECT
public:
//...
,但它不工作,任何想法,我需要做什麼嗎?還是我完全脫落?
[同一問題在這裏](http://stackoverflow.com/questions/363200/is-it-possible-to-sort-numbers-in-a-qtreewidget-column?rq=1)唯一的區別是, 'bool operator <(const ...'在這個被接受的答案中是私有的...... – 2013-07-03 02:00:34
只要它在同一個類中被訪問,它在私有或公共方面就不應該在這方面起作用afaik。 – throwaway2013
可能是你應該看看QSortFilterProxyModel類http://qt-project.org/doc/qt-5.0/qtcore/qsortfilterproxymodel.html。有一個例子說明如何將它用於TreeView小部件。基本上你必須從該類派生並重新實現一些方法。 – bkausbk