Russian Qt Forum
Ноябрь 24, 2024, 13:28
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
tableview
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: tableview (Прочитано 7041 раз)
sinj
Гость
tableview
«
:
Июнь 08, 2009, 15:17 »
добрый день!
Такой вопрос: в сабж загружены некоторые значения. Необходимо по дабл-клику из строки выбрать столбец, допустим под номером 3 и присвоить некоторой текстовой переменной его значение. Использую QSqlQueryModel. Нашел на форуме несколько тем по данному вопросу, но сам разобраться не смог. Подскажите, как это реализуется!
«
Последнее редактирование: Июнь 08, 2009, 15:21 от sinj
»
Записан
ритт
Гость
Re: tableview
«
Ответ #1 :
Июнь 08, 2009, 15:24 »
QSqlQueryModel - модель для отображения результатов запроса. всё.
Записан
sinj
Гость
Re: tableview
«
Ответ #2 :
Июнь 08, 2009, 15:31 »
так как мне получить в множестве строк- ту на которую два раза щелкнул и из нее выбрать значение допустим 3 столбца?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: tableview
«
Ответ #3 :
Июнь 08, 2009, 15:46 »
см. общее описание:
Обработка выбора элементов в представлениях
«
Последнее редактирование: Июнь 08, 2009, 15:48 от lit-uriy
»
Записан
Юра.
sinj
Гость
Re: tableview
«
Ответ #4 :
Июнь 08, 2009, 15:57 »
спс, попробую разобраться. Тем не менее остается такой вопрос: надо обработать щелчок мыши на таблвью. и потом, как я понимаю использовать
Цитировать
QModelIndex topLeft;
QModelIndex bottomRight;
topLeft = model->index(0, 0, QModelIndex());
bottomRight = model->index(5, 2, QModelIndex());
далее по тексту...
Записан
ритт
Гость
Re: tableview
«
Ответ #5 :
Июнь 08, 2009, 16:10 »
ах, так модифицировать результат не предполагается? тогда извиняюсь...
QModelIndex index = model->index(row, column, parent);
QVariant data = model->data(index, Qt::EditRole);
Записан
sinj
Гость
Re: tableview
«
Ответ #6 :
Июнь 08, 2009, 16:20 »
да, результат нужен только для того, чтобы дать его значение некоторой переменной. Если я правильно понял
Цитировать
QModelIndex index = model->index(row, column, parent);
QVariant data = model->data(index, Qt::EditRole);
row-номер строки в модели
column-номер столбца в модели
parent -даже не могу предположить
и как все это увязать с имеемой таблвью? Т.е. как мне в проекте моем нужно это и где описывать (предполагаю, что в слоте clicked) и, если вас не затруднит, то напишите поподробнее)
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: tableview
«
Ответ #7 :
Июнь 08, 2009, 16:24 »
sinj, это уже описано, читай "
Программирование Модель/Представление
", там на русском.
Записан
Юра.
ритт
Гость
Re: tableview
«
Ответ #8 :
Июнь 08, 2009, 16:36 »
sinj, вот код: model->selectionMode() + читай доки по QItemSelectionModel - там всё примитивно.
Записан
sinj
Гость
Re: tableview
«
Ответ #9 :
Июнь 08, 2009, 16:51 »
Действительно, все очень просто. Спасибо за целеуказание))
Записан
sinj
Гость
Re: tableview
«
Ответ #10 :
Июнь 18, 2009, 09:22 »
Изучил. Отпал ряд вопросов. Но с текущим не разобрался. Прошу помощи. Попробую сформулировать вопрос конкретнее:
1. В tableview уже загружена таблица
2. Описываю функцию по дабл клику на tableview
3. При дабл клике нужно выделить всю строку, на которую кликал мышью
4. Из заданной выделенной строки нужно получить значение например в третьем столбце
Не выходит, блин... Объясните.
Записан
spectre71
Гость
Re: tableview
«
Ответ #11 :
Июнь 18, 2009, 10:50 »
Цитата: sinj от Июнь 18, 2009, 09:22
Изучил. Отпал ряд вопросов. Но с текущим не разобрался. Прошу помощи. Попробую сформулировать вопрос конкретнее:
1. В tableview уже загружена таблица
2. Описываю функцию по дабл клику на tableview
3. При дабл клике нужно выделить всю строку, на которую кликал мышью
4. Из заданной выделенной строки нужно получить значение например в третьем столбце
Не выходит, блин... Объясните.
1) Переопредели
virtual void mouseDoubleClickEvent ( QMouseEvent * event )
2) Получи ModelIndex
QModelIndex Index = tableview->indexAt(event->pos());
3) Селектируй строку
tableview->selectionModel()->select ( const QItemSelection & selection, QItemSelectionModel::SelectionFlags command )
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...