crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Можно ли использовать виджет в качестве элемента
wiz29
  опции профиля:
сообщение 17.8.2010, 16:54
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


Использовал ли кто либо QWidget в качестве элемента QTreeWidget.
Ограничена ли функциональность виджета QWidget, как объекта при таком подходе (т.е. полноценным ли виджетом он остается при добавлениие его в QTreeWidgetItem: есть ли обработка стандартных сообщений или же никаких eventов не получает кр paintEvent)
Просто сейчас стою перед дилемой использовать виджет или "корячиться" с самодельным элементом для дерева.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.8.2010, 17:04
Сообщение #2


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

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

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




Репутация:   94  


Цитата(wiz29 @ 17.8.2010, 20:54) *
Ограничена ли функциональность виджета QWidget
она не может ограничится, в принципе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 17.8.2010, 17:17
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата(wiz29 @ 17.8.2010, 19:54) *
Просто сейчас стою перед дилемой

а каковы причины колебаний ? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 18.8.2010, 9:00
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


Цитата(Алексей1153 @ 17.8.2010, 18:17) *
Цитата(wiz29 @ 17.8.2010, 19:54) *
Просто сейчас стою перед дилемой

а каковы причины колебаний ? :)

Меня смутила вот эта строка из документации (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
  опции профиля:
сообщение 18.8.2010, 9:18
Сообщение #5


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

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

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




Репутация:   94  


оговорка правильная, QTreeView + делегат, будут гибче.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 18.8.2010, 9:49
Сообщение #6


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


Юрий, а чем гибче? Просто у меня задача сделать Item с кнопками картинками, причем расположение их может варьироваться при пожелании заказчика, поэтому использование виджета, как мне кажется более вариабельно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.8.2010, 10:46
Сообщение #7


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

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

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




Репутация:   94  


Цитата(wiz29 @ 18.8.2010, 13:49) *
Юрий, а чем гибче?
почитай про модель-представление-делегат. Виджет (QTreeWidget) просто объединяет в себе все три компонента, в заранее определённом и неизменяемом виде.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 18.8.2010, 10:50
Сообщение #8


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


ага, прочел, виджет всетаки не катит, делаем через делегатов. Вообще поэкспериментировав с простой установкой виджета в я чейку итема, понял, что лучше вообще так не делать: рушит лайауты, сегналы к/из виджета проходят через известное всем место.

спасибо за информацию всем
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 18.8.2010, 10:53
Сообщение #9


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата(wiz29 @ 18.8.2010, 13:50) *
рушит лайауты, сегналы к/из виджета проходят через известное всем место.

с чего вдруг, и что за место такое на твоём компутере ? ))
Может быть, дело не в сигналах, а в неправильном подходе? Так бывает

Покажи хоть код
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 18.8.2010, 12:26
Сообщение #10


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


есть класс виджета 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);
....

вот такого типа код



Юрий, хотел спросить. Делегат конечно решит многие проблемы (он решит все проблемы). Но как бы не охота писать отрисовку итема в паитере делегата (на мой взгляд это гемор).
Можно ли как нибудь использовать готовый виджет? (не только для редактирования, но и при отображении)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 1.12.2024, 14:37