Custom Widget не виден на форме, как правильно написать paintEvent и sizeHint |
Здравствуйте, гость ( Вход | Регистрация )
Custom Widget не виден на форме, как правильно написать paintEvent и sizeHint |
zamnach |
6.8.2008, 16:31
Сообщение
#1
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
пытаюсь сделать плагин, наследуя QLineEdit.
мой Edit отличается от QLineEdit только наличием свойства AddName (+метод set и приватный член типа QString) плагин собирается и устанавливается в Дизайнер. на форму кидаю свой Edit - все ОК, задаю св-во AddName. при предварительном просмотре ничего на форме не видно. смекаю - надо свой метод написать paintEvent и sizeHint как вызвать "стандартный" paintEvent и sizeHint, тот который родительский (внешне мой контрол ничем не отличается от родителя)? мозх плавится((. Спасибо. |
|
|
zamnach |
7.8.2008, 17:04
Сообщение
#2
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
обнаружилось странное, товарищи!
есть два проекта: 1-й: плагин в котором создается наследник CamLineEdit (QLineEdit + доп. св-во типа QString) 2-й: приложение, динамически загружающее файлы форм (содержащие CamLineEdit) там в цикле перебираются все контролы, лежащие на форме, приводятся dynamic_cast к типу указателя на CamLineEdit Поведение 2-го проекта после запуска на исполнение зависит от режима компиляции обоих проектов. Вариант А. Плагин собирается debug (в designer пишется, что плагин установлен некорректно. однако формы, созданные ранее - нормально открывает и свойства контролов CamLineEdit показывает правильно ) вариант A-1. приложение запускается debug. при выполнении поля CamLineEdit не заполняются. вариант A-2. приложение запускается release. при выполнении поля CamLineEdit не заполняются. портится heap (при выходе из программы появляются об этом сообщения) Вариант B. Плагин собирается release (в designer пишется, что плагин нормально установлен) вариант B-1. приложение запускается в debug. при выполнении поля не заполняются. В окне Output msvc пишется "QFormBuilder was unable to create a custom widget of the class 'CamLineEdit'; defaulting to base class 'QLineEdit'." вариант B-2. приложение запускается release. поля заполняются CamLineEdit. портится heap (при выходе из программы появляются об этом сообщения) =============================== "кто виноват и что делать" как донести до QFormBuilder (и до QUiLoader) информацию о том как динамически "create a custom widget of the class 'CamLineEdit'"? спасибо |
|
|
Текстовая версия | Сейчас: 24.1.2025, 9:52 |