![]() |
|
![]() ![]() ![]() |
|
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
Что есть: QListWidget, итемами в котором являются QCheckBox. QCheckBox устанавливаются с помощью setItemWidget().
Что надо: дать возможность ещё и _выделять_ итемы, а не только устанавливать/снимать галки. |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Обрабатывай сигнал stateChanged и по нему выделяй или снимай выделение итема к которому он относится. Смотри в QItemSelectionModel.
|
|||
|
||||
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
да нет. всё не так просто. мне нужно, чтобы виджеты выделялись независимо от изменения состояния. т. е. чтобы я могу выделить, к примеру, все виджеты, не изменив их состояния |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А разве изначально сделано не так, чтобы виджет создавался только при двойном клике на итем? Или у тебя умышленно openPersistentEditor стоит?
|
|||
|
||||
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
оО, нет, установеленные виджеты сразу активны, думаю ты сейчас про делегирование говоришь, а не про статическую установку виджетов на айтемы. и в случае делегирования, мне всё равно нужно, чтобы виджеты отображались всегда. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Быть может есть решение с QListWidget, но в любом случае лучше изначачально пользоваться чистым QListView, у него разрешается отметка элементов, у модели реализуется обработка соответствующей роли и устанавливается флаг, разрешающий отметку элементов. Как-то так
![]() Это сообщение отредактировал(а) Любитель - 17.3.2009, 18:37 |
|||
|
||||
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
хм, мб я не до конца вкурил, но как (где) в таком случае хранить состояния чекбоксов? т. е. модель это QStringListModel и она фактически хранит подписи к чекбоксам, а что делать с состояниями?! зы основываюсь на экземпле spinboxdelegate |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Создавать свою модель. Можно наследоваться. Где хранить - непринципиально.
|
|||
|
||||
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
уже вычитал) пробую. спасибо. |
|||
|
||||
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
возникли проблемы:
1) при отображении делегата, текст самого элемента остаётся на фоне => наложение текста чекбокса и текста элемента. (UPD: поборол введением новой своей роли и возвратом пустой строки на дисплей роль) 2) какой флаг и как нужно поставить, чтобы можно было выделять _делегаты_? пока такого не нашёл. 3) есть ли возможность единожды сказать, чтобы все элементы списка отображались перманентно с делегатом редактирования? Это сообщение отредактировал(а) feanor59 - 18.3.2009, 04:23 |
|||
|
||||
feanor59 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2008 Где: Пермь Репутация: нет Всего: нет |
Всплыла ещё одна проблема. После обновления QListView не устанавливается openPersistentEditor
Код обновления:
При первом выполнении этого кода, всё отлично, при повторном openPersistentEditor не срабатывает. UPD: разобрался, проблема была в смарт поинтерах, а конкретно в том, что до того, как QListView получал новую модель, уничтожалась старая. Это сообщение отредактировал(а) feanor59 - 18.3.2009, 07:25 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |