2016-10-08 3 views
0

У меня есть qtablewidget с несколькими строками. Мне нужно отсортировать эти строки случайным образом.Случайно сортировать строки Qtablewidget

Каков наилучший способ для этого? Я понятия не имею, кроме удаления и добавления всех строк случайно ...

+1

Можете ли вы уточнить, означает ли сортировка случайным образом сортировку по пользовательским критериям или рандомизацию заказа предметов? –

ответ

0

«Я предполагаю, что вы ищете какой-то обычай сортировки. Не заголовок столбца щелчка рода»

У меня есть способ сделать это. может быть гораздо более эффективным способом.

получить «QList» из «QTableWidgetItem», используя нижеследующую функцию.

QList<QTableWidgetItem *> findItems(const QString & text, Qt::MatchFlags flags) const 

Затем отсортировать список, как показано ниже, с condiion

bool sortFun(const QTableWidgetItem* v1, const QTableWidgetItem* v2) 
{ 
    return //your sor criteria; 
} 

int doComparison() 
{ 

    QList<QTableWidgetItem *> fieldsList; 

    // Add items to fieldsList. 

    qSort(fieldsList.begin(), fieldsList.end(), sortFun); 
} 

Не расчистить свой "QTableWidget".

Затем повторно назначить свой упорядоченный список «QTableWidgetItems» в QTableWidget

0

Наконец я сделал что-то другое.

Что мне нужно сделать: - случайные строки моего стола - У меня есть столбец с «Time», и я инициализировать его с 15:00 по первой строке, а затем добавить 1 минуту для каждой строки.

Решение, которое я использовал: - создать qlist с моими временами (15:00, 15:01, 15:02 ...) - рандомизировать qlist (15:01, 15:03, ... .) - присвойте элементы qlist столбцу «Время» моей таблицы - закажите мою таблицу со столбцом «Время» с помощью метода сортировки столбцов.