我必须为模型创建自己的类(实现拖动)(现在它使用MyTableItem
列表)和标题(处理点击列)
class DragTableView : public QTableView
{
public:
DragTableView(QWidget *parent = 0);
void Initialzie(Overseer *Overseer);
protected:
void mouseMoveEvent(QMouseEvent *event);
private:
void performDrag();
};
class ClickableHeaderView : public QHeaderView
{
Q_OBJECT
public:
ClickableHeaderView(ObjectMaster* Master);
~ClickableHeaderView(){};
public slots:
void sectionClicked(int index);
};
class CustomModelOfCustomObjects : public QAbstractTableModel
{
Q_OBJECT
public:
CustomModelOfCustomObjects();
//(...)
///SOME FUNCTIONS LIKE ADDING ITEM, REMOVING IT, ETC
int rowCount(const QModelIndex &parent) const;
int columnCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role) const;
bool insertRows(int position, int rows, const QModelIndex &index);
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
private:
QList <MyTableItem> listOfObjects;
};
MyTableItem
只是一个包含少量QStrings和ints来表示数据的类。
我处理鼠标单击确定,将信息进一步传递给我的Overseer
类,它存储模型(并将指针指向表视图)并设法使用此kKeep进行排序,此函数为Model&# 39; s函数):
//Example for sorting by "Name"
void sortItemsBy_Name()
{
qSort(listOfObjects.begin(), listOfObjects.end(), compare_Names);
}
bool compare_Names(MyTableItem &v1, MyTableItem &v2)
{
int result = QString::localeAwareCompare(v1.get_Name() , v2.get_Name());
if(result >0)
return true;
else
return false;
}
直到这一刻,这一切都很好。列表排序正确,但显示的内容 - 不是。我试着用:
emit dataChanged(QModelIndex(), QModelIndex());
它刷新了TableView
的显示,但是每个元素都处于错误的位置,而在列表中 - 一切都很好(我在调试中检查过)。
编辑1: Sorting Qt Table Model - QTableView doesn't get updated中提出的解决方案没有做到这一点。
编辑2:
我注意到我的表格视图看起来完全一样 - 如果我使用layoutAboutToBeChanged
/ dataChanged
/ NOTHING。
答案 0 :(得分:0)
我解决了。结果证明强迫repaint()
有效,但也不是最佳解决方案。我搜索了“之前的”功能,我注意到break;
case
switch
个filter {
if [type] == "pat" {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:time} %{LOGLEVEL:loglevel} \[%{JAVACLASS:class}] %{GREEDYDATA:mydata}"
}
}
date {
match => [ "time" , "YYYY-MM-dd HH:mm:ss,SSS" ]
}
}
}
内缺少2016-03-08 15:26:45,111 INFO [ch.fhnw.imvs.pat.integration.adapter.vcs.GitAdapter] - gitweb.conf updated
。