Russian Qt Forum
Май 03, 2024, 07:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос к спецам по QTable  (Прочитано 6210 раз)
igorko
Гость
« : Март 14, 2005, 14:51 »

Делаю таблицу, в одном из столбцов которой данные вибираются из QComboBox.
QComboBox заполняется из базы данных.

Пробовал перегрузить QTable::createEditor () и  QTable::setCellContentFromEditor ()

Всё работает как хотелось только первый (!) раз. А потом обе эти функции не вызываются (как я понимаю потому-что уже созданы QTableItem) и данные в ячейке не обновляются.

Мой вопрос вот какой: как правильно создавать/удалять QComboBox с довольно "массивной" инициализацией и вызывать его для выбора значений в определенных столбцах и вставки результата в таблицу?

Хотелось бы его (QComboBox) инициализировать один (!) раз при открытии диалога.

Надеюсь на вашу помощь.

Наперёд спасибо!
Записан
west
Гость
« Ответ #1 : Март 14, 2005, 16:51 »

Я делал следующее: создавал объект QComboBox, впихивал внего все что надо, потом втыкал его через QTable::setCellWidget()  в нужную мне ячейку. Все комбы вешал на один слот, чтобы понять кто "заговорил"  в слоте получал указатель на объект - конкретный комбобкс - через QObject::sender(). Если надо изменить состав комбобкса, то получал на него указатель через  QTable::cellWidget() ну и дальше опять впихивал в него все что надо.  Работает без замечаний. Возможно проблемма имеет более симпотное решение (типа через автоматическое обновление). Узнаешь - напиши плз.
Записан
Sergeich
Гость
« Ответ #2 : Март 15, 2005, 16:37 »

А через QComboTableItem не пробовал?
Записан
igorko
Гость
« Ответ #3 : Март 15, 2005, 16:51 »

Спасибо за ваши отзывы!

К сожалению я всё ещё на прежнем месте.

>>А через QComboTableItem не пробовал?

Вот только что пробовал: оно-то как-то выходит, но мне нужно чтобы ячейка с выбранным текстом не отличалась от остальных (а QComboTableItem виден постоянно)

Я мечтал бы о таком решении, чтобы при doubleClick вместо QLineEdit вызывался QComboBox (или QComboTableItem), а по завершении в ячейку вставлялся выбранный текст.
Записан
Sergeich
Гость
« Ответ #4 : Март 15, 2005, 17:00 »

Я в свое время решил эту проблему так: взял исходники  QComboTableItem, обозвал подругому и поменял в конструкторе EditType
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 20.