crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QTableWidget, редактирование по месту
rich
  опции профиля:
сообщение 13.3.2008, 22:16
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


т.е нужно чтобы изменения внесенные пользователем в ячейках сохранялись в базу.как оптимальней сделать?

Сообщение отредактировал Litkevich Yuriy - 2.2.2009, 13:38
Причина редактирования: уточнил название темы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.3.2008, 22:23
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Вместо QTableWidget использовать QTableView + QSqlTableModel, смотри пример
%QTDIR%\examples\sql\cachedtable

для модели выбираешь стратегию
model->setEditStrategy(QSqlTableModel::OnManualSubmit);

т.е. когда пользователь нажмет кнопку Submit тогда все изменения отправятся в БД

Сообщение отредактировал Litkevich Yuriy - 13.3.2008, 22:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rich
  опции профиля:
сообщение 13.3.2008, 22:30
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


:blink: а только с QTableWidge не пройдет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.3.2008, 22:48
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


много ручной работы, да и что ты вцепился в QTableWidget, для твоей задачи удобнее использовать представление, а не просто таблицу
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rich
  опции профиля:
сообщение 13.3.2008, 22:56
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


ясно.переделывать нехотелось:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.3.2008, 1:18
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Да переделок мимнимум, возьми готовые файлы:
tableeditor.h
tableeditor.cpp
и используй вместо таблицы, т.е. вместо:
QTableWidget   *mytbl = new QTableWidget;

сделаешь так:
TableEditor   *mytbl = new TableEditor;


Предвари это дело следующими строчками соединения с БД:
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("MyBD");
if (!db.open())
{
    QString qerr = db.lastError().text();
    QMessageBox::critical(0, "Ошибка базы данных", "Невозможно установить соединение.\n\r"+qerr, QMessageBox::Cancel);
}


где:
QODBC - имя драйвера,
MyBD - имя БД.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rich
  опции профиля:
сообщение 14.3.2008, 5:31
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


дело ещё в том что у меня таблица оч динамична.кол-во колонок зависит от одной табл БД,строк-от 2хдругих,данные же из другой табл БД..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.3.2008, 5:58
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а можешь свой запрос показать, я представить немогу как можно влиять на колонки и строки одновременно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rich
  опции профиля:
сообщение 14.3.2008, 7:08
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


Одним запросом тоже не знаю как.Попробую на словах.сейчас в дороге.выбираю из бд нужное значение кол-ва и по нужной формуле генерю колонки:setColumnCount(3+2n/*например*/).строчки:замысел из одной таблицы первое наименование,под ним всё что к нему относится из второй,второе значение первой табл.,под ним всё что к нему относится из2.дерево вобщем по двум таблицам.по ходу генерю строчки и втыкаю в них наименования.коряво наверно.надеюсь понятно изложил.код только вечером могу выложить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.3.2008, 7:34
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


что-то странная у тебя структура данных, и показать такую пользователю? а у него голова не отвалится.
и как ты предпологаешь сохранять данные при таком раскладе, целостность связей сохранять?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 22:31