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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли сделать тривьюху без наследования?  (Прочитано 2756 раз)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« : Ноябрь 14, 2010, 00:21 »

Мне хочется сделать виджет древесной структуры (то есть QTreeView в нем будет), однако внешнее АПИ не должно предоставлять доступ ко всем ф-иям QTreeView. Примерное решение - отнаследоваться от QAbstractScrollArea, хранить указатель на QTreeView в себе и перебрасывать виртуал методы скроллареи на вьюху. Однако тут видимые косяки как минимум косяк с фокусом - он будет на внутреннем виджете, а не на внешнем. Можно ли это как-то обойти? Если запретить фокус полиси для вьюхи и пробросить keyBoardEvent на нее, то она будет как бы "не в фокусе" - серая - тоже нехорошо.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Ноябрь 14, 2010, 00:50 »

И для чего такой изврат?
setFocusProxy?
Записан

Qt 5.11/4.8.7 (X11/Win)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Ноябрь 14, 2010, 01:46 »

Вау, не знал, спасибо:) А еще косяки могуть быть, помимо мильена проброса методов?
Записан
kirill
Гость
« Ответ #3 : Ноябрь 15, 2010, 11:00 »

Сделать защищенное наследование

class TV : protected QTableView
{
public:
   TV(){}
};

попытка использовать
   TV tv;
   tv.rowAt(0);

1>test.cpp(156) : error C2247: 'QTableView::rowAt' not accessible because 'TV' uses 'protected' to inherit from 'QTableView'
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #4 : Ноябрь 15, 2010, 11:11 »

Ага, а еще нам его не дадут положить в лайаут, тк QWidget - "недостижимый предок"
Вообще отнаследовался от QWidget - у скроллареи нет полезных паблик методов и положил вьюху на этот виджет. Фокус поправил, как посоветовали. Вроде косяков пока нет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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