Название: Создание кастомных виджетов Отправлено: Lestat от Декабрь 09, 2009, 00:35 Здравствуйте!
Работаю над проектом, в котором хотелось бы использовать продвинутые кастомные виджеты. А именно хотелось бы создать либу, может даже выложить ее как open source, с контролами как в продвинутых 3D-редакторах. Для примера ориентируюсь на виджеты modo и последней бетты Blender'а. Там интерфейс завязан на скрипты. Т.е. каждый контрол при нажатии выполняет строчку скрипта. Поэтому в качестве тултипа хотелось бы видеть описание и команду для данного контрола. Вот и возник первый вопрос: Как создать кастомный тултип! Нужно изменять не только текст, но и вообще его перерисовать желательно по своему. Знаю что есть класс QToolTip, а также QWidget для новых контролов. Как указать QWidget'у что нужно использовать кастомный тултип. В QWidget'е тултип задается только строкой, а не, например, указателем на экземпляр QToolTip. Название: Re: Создание кастомных виджетов Отправлено: Dendy от Декабрь 09, 2009, 00:47 Для этого нужно переопределить у кастомного виджета QObject::event() и реагировать на событие QEvent::ToolTip, пример:
Код
Другой способ - повесить на каждый контрол по фильтру событий. Ещё один способ (который я реализовал в одном из проектов) - вешать фильтр событий в переопределёном методе QStyle::polish( QWidget * ). Название: Re: Создание кастомных виджетов Отправлено: Lestat от Декабрь 09, 2009, 01:50 Спасибо, работает первый метод! Вполне устраивает!)
По крайней мере знаю куда дальше двигаться) Правда заметил что нужно поменять Код на Код иначе такой код: Код тултип не рисует |