Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: AdAn от Октябрь 21, 2014, 05:53



Название: QListWidget Не видимые строки
Отправлено: AdAn от Октябрь 21, 2014, 05:53
Добрые сутки!

Пытаюсь вывести в ListWidget строки взятые из БД. То есть, чтобы строки в виджете обзывались из таблицы БД. Подсоединение к БД и все такое выдает, считывает таблицу, и строки в виджете появляются, но они пустые (а может чего не понимается).
Код:
while(q.next()){
        int i = 1;
        QListWidgetItem *newItem = new QListWidgetItem(q.value(i).toString());

        ui->listWidget->insertItem(i,newItem);
      
        i++;
    }
Если делать просто вот так:
Код:
ui->listWidget->insertItem(1,"qwe");
то строка появляется с названием.

БД - MySQL. кодировка utf8.


Название: Re: QListWidget Не видимые строки
Отправлено: carrygun от Октябрь 21, 2014, 10:10
Вы скорее всего неправильно используете value(); В него нужно передавать индекс значения для текущей записи. Так как запрос мы не видим, сказать трудно что у вас не так.

Например, если запрос был "SELECT a, b FROM c" то для каждой записи у вас доступны индексы 0 и 1, которые соответственно вернут a и b для текущей строки (записи), то есть q.value(0).


Название: Re: QListWidget Не видимые строки
Отправлено: AdAn от Октябрь 21, 2014, 11:53
Точно! Благодарю, carrygun!

Код:
q.exec("SELECT * FROM general_tables");
while(q.next()){
        int i = 1;
        QString itemLW = q.value(2).toString();
        ui->listWidget->insertItem(i,itemLW);
        i++;
}
В запросе, в таблице сделал все столбцы чтобы читались. q.value(i) считывает, как я понимаю, столбцы, мне нужно было только один столбец, отсчет начинается с 0 - первый столбец, 1 - второй столбец и т.д.


Название: Re: QListWidget Не видимые строки
Отправлено: Fregloin от Октябрь 21, 2014, 12:00
советую использовать SQLModel+QListView.


Название: Re: QListWidget Не видимые строки
Отправлено: AdAn от Октябрь 21, 2014, 12:02
Все испробуем)))