crossplatform.ru

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

> 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'"?
спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 24.1.2025, 9:52