Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
1

Как прочитать колонку из таблицы

06.11.2015, 13:20. Показов 500. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, есть таблица QtableView в нее заносится данные из БД. мне нужно прочитать 2ю колонку из нее. Порылся в инете, как-то не вкурил если чесно..Заранее спасибо!

Добавлено через 5 минут
попробовал такой код, программа просто крашится

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 QAbstractItemModel * model2 = table->model();
    QItemSelectionModel * selection = table->selectionModel();
    QModelIndexList indexes = selection->selectedIndexes();
 
    QString selected_text;
    // You need a pair of indexes to find the row changes
    QModelIndex previous = indexes.first();
    indexes.removeFirst();
    QModelIndex current ;
 
    foreach(current, indexes)
    {
        QVariant data = model2->data(current);
        QString text = data.toString();
 
    }
Добавлено через 1 минуту
нашел такой вариант

C++ (Qt)
1
2
3
4
5
6
QModelIndexList selectedRows = yourTableView->selectionModel()->selectedRows();
 
foreach( QModelIndex index, selectedRows )
{
    int row = index.row();
}
но это же просто индекс..

Добавлено через 4 минуты
типо я должен сделать QModelindex и из него методом QModelindex::data прочитать данные

Добавлено через 2 минуты
такой код почему-то ничего не дает

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
 QAbstractItemModel * model2 = table->model();
    QItemSelectionModel * selection = table->selectionModel();
    QModelIndexList indexes = selection->selectedIndexes();
 
    QModelIndex current ;
 
    foreach(current, indexes)
    {
        QVariant data = model2->data(current);
        QString text = data.toString();
        qDebug()<< text ;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2015, 13:20
Ответы с готовыми решениями:

Как заполнить колонку А от 1 до 200, колонку В от 2 до 40, колонку С от 3 до 600
Написать макрос, на текстовом листе заполнить колонку А от 1 до 200, колонку В от 2 до 40, колонку...

Как отсортировать колонку таблицы, в Плагине jQuery: Tablesorter
В настройках ориентируюсь плохо поставил: $(&quot;#table_blog&quot;).tablesorter(); Если, например,...

Как вставить в колонку таблицы другую страницу? Подскажите пожалуйста!!
Как вставить в колонку таблицы другую страницу? Подскажите пожалуйста!!

Как зафиксировать определенную колонку в конце таблицы? (СКД, Группировка)
Есть отчет в СКД, отбираю товар, склад, остаток (Рег накопления). Хочу чтобы товары шли строкой,...

4
Pied Piper
236 / 227 / 57
Регистрация: 15.01.2013
Сообщений: 855
06.11.2015, 13:38 2
Через метод модели createIndex создаете индекс, указывая колонку и строку. Потом методом data получаете данные.
0
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
06.11.2015, 15:20  [ТС] 3
а как я его вызову этот метод если он наследуется приватно из класса абстракитеммодель

Добавлено через 43 минуты
ребята, нужна помощь, все что выше привел не работает, что я не так делаю хотя бы?

Добавлено через 4 минуты
а если у меня модель QSqlQueryModel

Добавлено через 13 минут
QModelIndexList indexlist = table->selectionModel()->selectedIndexes(); вот такой код возвращает 0

Добавлено через 10 секунд
хотя таблица заполняется
0
Pied Piper
236 / 227 / 57
Регистрация: 15.01.2013
Сообщений: 855
06.11.2015, 15:35 4
Вы бы прочитали в доке, что такое selectedIndexex и selectionModel

Returns the current selection model.
Добавлено через 4 минуты
У модели можно получить индекс с помощьюе метода index передав колонку и строку, потом с помощью метода data получить данные.
1
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
06.11.2015, 16:19  [ТС] 5
table->model()->data(table->model()->index(0,0)).toString() такой код работает, спасибо за помощь!

Добавлено через 39 минут
читать читает но почему-то криво, делаю так :

C++ (Qt)
1
2
3
4
5
int count = table->model()->rowCount();
    for (int i=0 ; i< count ; i++ )
    {
        qDebug()<< i << table->model()->data(table->model()->index(0,i)).toString() ;
    }
выдает пустые строки, а если указывать индекс явно то выводит корректно все..

Добавлено через 1 минуту
все решил...
0
06.11.2015, 16:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2015, 16:19
Помогаю со студенческими работами здесь

Как запретить вводить в одной таблице в колонку значения опираясь на данные другой таблицы
Есть две таблицы: 1-ая: Список корпусов (Номер корпуса, Адрес, Количество этажей(этажи только...

Как прочитать данные из таблицы MySQL
mysql_query (&quot;INSERT INTO users VALUES ('NULL','$username','$password','$email')&quot;) or die...

Как вывести определенную колонку MS SQL в определенную настроенную колонку элемента DataGridView
на языке VB.NET или на худой конец C# Имеется на форме полностью настроенный Грид со всеми...

КАК ПРОЧИТАТЬ с нолевого столбца таблицы DBF
Среда Visual Basic STUDIO’2010 Professional Dim dBaseDataReader As...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru