Название: Работа с таблицей и QSqlQueryModel Отправлено: linuxoid от Август 15, 2007, 08:17 Как определить строку(row) при нажатии мышкой на ячейку в таблице(QTableView) и достать из этой строки значение нужного мне столбца?
Если кто знает напишите плз очень поможете.... Заранее спасибо Название: Работа с таблицей и QSqlQueryModel Отправлено: SABROG от Август 15, 2007, 08:30 Код:
Код:
Название: Работа с таблицей и QSqlQueryModel Отправлено: linuxoid от Август 15, 2007, 10:58 чё то неполучается!у меня таблица,которая является отображением трёх разных таблиц:
setQuery("select cities.city_name, articles.article_name, sales.kol_vo, sales.dat_real,sales.id_key_sal FROM `sales`, `cities`, `articles` WHERE sales.sit_key = cities.id_key_city AND sales.art_key = id_key_art ORDER BY sales.dat_real DESC , cities.city_name"); и эту таблицу нужно сделать редактируемой.так вот как сделать так чтобы когда я нажимал на нужную мне ячейку она доставала (для моего примера) значение id_key_sal из выбранной !строки! и затем я это значение использовал в sql запросе??? я пытаюсь сделать так: bool MyModel::setData(const QModelIndex &index,const QVariant &value,int /* role */) { if (index.column() < 0 || index.column() > 3) return false; bool ok; QSqlQuery query; if (index.column() == 0) { query.prepare("update sales,cities set city_name = where id_key_sal=" +; query.addBindValue(value.toString()); добавлено спустя 2 минуты: а ещё как вставить значение вводимое в ячейке пользователем в sql запрос?? Название: Работа с таблицей и QSqlQueryModel Отправлено: SABROG от Август 15, 2007, 11:27 Код:
При условии, что твой id_key_sal находится именно в Qt::UserRole, иначе другую роль. Вполне возможно что вместо точек где-то надо указатели использовать (->), я прототипы всех функций не помню Название: Работа с таблицей и QSqlQueryModel Отправлено: linuxoid от Август 15, 2007, 15:15 UserRole описать в data?и как?можешь какой нить код выложить?можешь аську дать? а как взять значение которое ввёл юзер в ячейки таблицы??
Название: Работа с таблицей и QSqlQueryModel Отправлено: SABROG от Август 15, 2007, 17:03 Примеров достаточно с исходниками Qt идет, а на Qt Assistant вообще молиться можно.
Название: Работа с таблицей и QSqlQueryModel Отправлено: linuxoid от Август 16, 2007, 09:51 а есть на русском Assistant
Название: Работа с таблицей и QSqlQueryModel Отправлено: SABROG от Август 16, 2007, 10:18 Нету, а пока будешь его переводить выйдет новая версия Qt, и перевод устареет.
Название: Работа с таблицей и QSqlQueryModel Отправлено: linuxoid от Август 16, 2007, 11:03 :lol:
добавлено спустя 4 минуты: а подскажи как присвоить переменной значение ячейки на которую произошёл doubleClick таблицы QTableView???я кстати QSqlQueryModel использую. добавлено спустя 1 минуту: tbvMy->currentIndex()->row; tbvMyModel->item(tbvMy->currentIndex()->row,номер_колонки)->data(Qt::Роль)->toТип(); это код не пашет и вообще как я понял это для модели с определённой dat'ой и setDat'ой Название: Работа с таблицей и QSqlQueryModel Отправлено: SABROG от Август 16, 2007, 11:16 Значение ячейки в слоте doubleClicked получить так:
Код:
Почитай Assistant, а то мне приходится это делать вместо тебя на работе... Название: Работа с таблицей и QSqlQueryModel Отправлено: Sergey B. от Август 16, 2007, 12:01 Тебе нужно получить значение, хранящееся в модели!
Значение из модели можно получить по индексу! Индекс передаётся в сигнале класса отображения (QTableVew, QTreeView, QListView) т.е. тебе нужно соединить сигнал отображения (в котором летит индекс элемента модели - activated, к примеру) , со своим слотом, в котором ты берёшь этот индекс и получаешь значения... Описание сигнала... Код: void QAbstractItemView::activated ( const QModelIndex & index ) [signal] Слот скажем Код: void MySlot(const QModelIndex & index) Соедини сигнал со своим слотом: Код:
Код: void MyForm::MySlot(const QModelIndex & index){ |