crossplatform.ru

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


  Ответ в QTableWidget, Как при выделении ячейки вывести на её месте другой виджет?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Strikevld Дата 27.9.2011, 15:30
  Всем большое спасибо за внимание и ответы!
Нашел! Нужная мне функция setIndexWidget
Но чтобы её использовать надо юзать TableView т.е пришлось
подучить модель представление и теперь пожалуй я вижу лучшим выходом
использование делегатов!

Проблема решена! Привелико благодарен! ;) :)
Strikevld Дата 9.9.2011, 19:38
 
Цитата(Алексей1153 @ 7.9.2011, 10:26) *
нужно создать экземпляр QComboBox с родителем==таблица, затем комбу разместить ровно в размер ячейки на таблице

Кстати вариант хороший, а как узнать текущую позицию и размер ячейки (QTableWidgetItem) относительно окна или вьюпорта таблицы?
Strikevld Дата 9.9.2011, 17:07
 
Цитата(Litkevich Yuriy @ 9.9.2011, 20:24) *
Цитата(Strikevld @ 7.9.2011, 18:44) *
Да пытался!
а где же код?

Да блин... я его уже переписал подругому пока что вывожу ячейку в отдельном комбо ниже таблицы,
Но вопрос ещё остаётся, я в Qt как бы новичок поэтому буду щас разбираться что такое делегат,
попробую по книжке "QT4.5 Проф. программирование на С++"
Но хотелось-бы просто разместить комбо над таблицей, как например другие виджеты!
Буду учить, учить и ещё раз учить!!!
Litkevich Yuriy Дата 9.9.2011, 16:24
 
Цитата(Strikevld @ 7.9.2011, 18:44) *
Да пытался!
а где же код?
Гость Дата 9.9.2011, 12:59
  Посмотри QTableWidget::setCellWidget (http://doc.crossplatform.ru/qt/4.6.x/qtablewidget.html#setCellWidget)

Я пользовался QTreeWidget::setItemWidget (аналог у дерева). Встраиваемый виджет сам вписывается в элемент, ресайзится скролится и т.п.
MoPDoBoPoT Дата 8.9.2011, 20:27
 
Цитата(Алексей1153 @ 7.9.2011, 7:26) *
нужно создать экземпляр QComboBox с родителем==таблица, затем комбу разместить ровно в размер ячейки на таблице

Кстати, чтобы так сделать, надо парентом сделать вьюпорт (QAbstractScrollArea::viewport()), а не саму таблицу. Но через делегат, по-моему, правильней и удобней.
Алексей1153 Дата 8.9.2011, 6:54
  Strikevld, да я и не говорил, что кто-то идиот. Если не видно виджет, это одно из трёх:

1)он не создан
2)он скрыт
3)он передвинут не туда
MoPDoBoPoT Дата 7.9.2011, 19:32
  Делегат + нужная стратегия редактирования у представления (QAbstractItemView::EditTriggers)
Strikevld Дата 7.9.2011, 17:43
 
Цитата(Алексей1153 @ 7.9.2011, 20:53) *
Цитата
Ведь одно и тоже но комбо не видно!


так надо было его показать )


если вы про ->show(); то я не совсем идиот!
Показывал всё равно не видно!
Алексей1153 Дата 7.9.2011, 16:53
 
Цитата
Ведь одно и тоже но комбо не видно!


так надо было его показать )
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 23:55