Russian Qt Forum
Мая 06, 2025, 14:38
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
tableview
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: tableview (Прочитано 7246 раз)
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...