crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Работа с tableWidget
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
PAFOS Дата 2.2.2011, 15:12
 
Цитата(xls @ 2.2.2011, 14:03) *
1. Сортировку уже в Qt сделали за вас sortByColumn ( единственное, что он для tableView )


QTableWidget наследует QTableView) так что sortByColumn доступно и для QTableWidget
xls Дата 2.2.2011, 14:03
 
Цитата(bigory @ 2.2.2011, 12:04) *
Это все понятно, но мне бы хотелось чтобы при запуске программа сама все сортировала. Я написал код, но хотелось бы посоветоваться, так как думаю что он не очень правильный и не рациональный. Вот сам код:

1. Сортировку уже в Qt сделали за вас sortByColumn ( единственное, что он для tableView )
2. Поиск лучше сделать через QSortFilterProxyModel
bigory Дата 2.2.2011, 12:04
 
Цитата(Litkevich Yuriy @ 2.2.2011, 8:13) *
bigory, одна проблема - одна тема.


Я очень извиняюсь, но все мои вопросы касаются одного элемента, тем более они не требуют большие разьяснения. Прошу прощения если я немного нарушаю правила.

Цитата(RazrFalcon @ 2.2.2011, 8:20) *
1) В настройках QTableWidget есть пункт сортировки. Потом можно просто клацать по заголовку столбца.


Это все понятно, но мне бы хотелось чтобы при запуске программа сама все сортировала. Я написал код, но хотелось бы посоветоваться, так как думаю что он не очень правильный и не рациональный. Вот сам код:

void MainWindow::sort()
{
    QString a,b;
    int last = ui->tableWidget->rowCount(); // узнаём последнюю по счёту ячейку
    for(int i=0;i<last;i++)
        for(int j=0;j<last;j++)
        {
            a = ui->tableWidget->item(i,2)->data(0).toString();
            b = ui->tableWidget->item(j,2)->data(0).toString();
            if(a<b){
                       QString Login, email, FastName, group;
                       Login = ui->tableWidget->item(i,0)->data(0).toString();
                       email = ui->tableWidget->item(i,1)->data(0).toString();
                       FastName = ui->tableWidget->item(i,2)->data(0).toString();
                       group = ui->tableWidget->item(i,3)->data(0).toString();

                       QString Login1, email1, FastName1, group1;
                       Login1 = ui->tableWidget->item(j,0)->data(0).toString();
                       email1 = ui->tableWidget->item(j,1)->data(0).toString();
                       FastName1 = ui->tableWidget->item(j,2)->data(0).toString();
                       group1 = ui->tableWidget->item(j,3)->data(0).toString();

                       setUser(j, Login, email, FastName, group);            //Это моя функции добавления данных в ячейки
                       setUser(i, Login1, email1, FastName1, group1);     //i,j-номер ячейкм

                   }
        }
}


Я не стал расписывать подробнее что делает setUser, так как он не маленький, работает с добавлением очень хорошо и вопросов о дабавлении нет.
Код сортировки нормальный или его следует переделать? Или есть какая-то готовая функция которая делает то, что мне нужно?
RazrFalcon Дата 2.2.2011, 8:20
  1) В настройках QTableWidget есть пункт сортировки. Потом можно просто клацать по заголовку столбца.
2)
    for (int i=0; i<tableWidget->rowCount(); ++i)
    {
        if (tableWidget->item(i,0)->text()=="слово(а) поиска")
        {
            //делаем что хотим
        }
    }
Litkevich Yuriy Дата 2.2.2011, 8:13
  bigory, одна проблема - одна тема.
bigory Дата 2.2.2011, 0:33
  Всем доброе время суток!
Мне нужно решить 2 задачи, это сортировка таблицы и поиск.
На форме имею элемент tableWidget, та находятся данные: Login, email, ФИО, группа.

1)Как правильно написать функцию сортировки по ФИО?
2)Как сделать поиск по выбранным мною данным и выделить строку, где есть эти данные?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 1:09