![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
wiz29 |
![]()
Сообщение
#1
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Использовал ли кто либо QWidget в качестве элемента QTreeWidget.
Ограничена ли функциональность виджета QWidget, как объекта при таком подходе (т.е. полноценным ли виджетом он остается при добавлениие его в QTreeWidgetItem: есть ли обработка стандартных сообщений или же никаких eventов не получает кр paintEvent) Просто сейчас стою перед дилемой использовать виджет или "корячиться" с самодельным элементом для дерева. |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(wiz29 @ 17.8.2010, 20:54) Link Ограничена ли функциональность виджета QWidget она не может ограничится, в принципе.
|
|
|
Алексей1153 |
![]()
Сообщение
#3
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(wiz29 @ 17.8.2010, 19:54) Link Просто сейчас стою перед дилемой а каковы причины колебаний ? ![]() |
|
|
wiz29 |
![]()
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Алексей1153 @ 17.8.2010, 18:17) Link Цитата(wiz29 @ 17.8.2010, 19:54) Link Просто сейчас стою перед дилемой а каковы причины колебаний ? ![]() Меня смутила вот эта строка из документации (void QTreeWidget::setItemWidget ( QTreeWidgetItem * item, int column, QWidget * widget )) "This function should only be used to display static content in the place of a tree widget item. If you want to display custom dynamic content or implement a custom editor widget, use QTreeView and subclass QItemDelegate instead." Все нормально работает, всем спасибо ![]() ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
оговорка правильная, QTreeView + делегат, будут гибче.
|
|
|
wiz29 |
![]()
Сообщение
#6
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Юрий, а чем гибче? Просто у меня задача сделать Item с кнопками картинками, причем расположение их может варьироваться при пожелании заказчика, поэтому использование виджета, как мне кажется более вариабельно.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(wiz29 @ 18.8.2010, 13:49) Link Юрий, а чем гибче? почитай про Link. Виджет (QTreeWidget) просто объединяет в себе все три компонента, в заранее определённом и неизменяемом виде.
|
|
|
wiz29 |
![]()
Сообщение
#8
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
ага, прочел, виджет всетаки не катит, делаем через делегатов. Вообще поэкспериментировав с простой установкой виджета в я чейку итема, понял, что лучше вообще так не делать: рушит лайауты, сегналы к/из виджета проходят через известное всем место.
спасибо за информацию всем |
|
|
Алексей1153 |
![]()
Сообщение
#9
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(wiz29 @ 18.8.2010, 13:50) Link рушит лайауты, сегналы к/из виджета проходят через известное всем место. с чего вдруг, и что за место такое на твоём компутере ? )) Может быть, дело не в сигналах, а в неправильном подходе? Так бывает Покажи хоть код |
|
|
wiz29 |
![]()
Сообщение
#10
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
есть класс виджета MyWidget. (выдирать код виджета не вижу смысла, скажу тольчто там несколько лейаутов и несколько контролов)
//Это не оригинальный код на 100% //тут пример использования мной функциональности QTreeWidget QTreeWidget* pTree; //инициализацию свойств опущу... (тк делаю через дизайнер) pTree->setColumnCount(1); pTree->setColumnWidth(200); .... QTreeWidgetItem* pItem(new QTreeWidgetItem); pTree->addTopLevelItem(pItem); MyWidget* pWidget(new MyWidget); pTree->setItemWidget(pItem, 0, pWidget); .... вот такого типа код Юрий, хотел спросить. Делегат конечно решит многие проблемы (он решит все проблемы). Но как бы не охота писать отрисовку итема в паитере делегата (на мой взгляд это гемор). Можно ли как нибудь использовать готовый виджет? (не только для редактирования, но и при отображении) |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 12.8.2025, 4:39 |