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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: плагины в QtDesigner и кастинг в QUiLoader [РЕШЕНО]  (Прочитано 2655 раз)
frostyland
Гость
« : Март 02, 2011, 16:17 »

Приветствую.
При создании плагина для дизайнера возникла проблема.
Создал плагин с классом
Код
C++ (Qt)
class CSMnemoscheme : public QFrame
В дизайнере все строится отлично, затем нужно поднять полученную UI-форму в рантайме,
и проверить на
Код
C++ (Qt)
CSMnemoscheme* scm = qobject_cast<CSMnemoscheme*>(res);
Так вот:
Код
C++ (Qt)
QFrame* _fr = qobject_cast<QFrame*>(res); - OK
CSMnemoscheme* scm = qobject_cast<CSMnemoscheme*>(res);  - NOT OK (((
 
ТО есть кастинг не работает, хотя в ui все оки.
кусок UI
Код
XML
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="CSMnemoscheme" name="Form">
 <property name="geometry">
  <rect>
 
Заголовочники описания/определения CSMnemoscheme одинаковы и в плагине и в тестовой программе-загрузчике.

Это вообще можно побороть?

« Последнее редактирование: Март 15, 2011, 11:41 от frostyland » Записан
frostyland
Гость
« Ответ #1 : Март 15, 2011, 11:41 »

Поборол.
Перенес класс CSMnemoscheme в либу, и подключаю ее в плагине и в тестовой программе-загрузчике.
кастинг работает на ура.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Март 15, 2011, 16:09 »

Есть такая проблема не проблема - чтобы кьобжект каст работал, ф-ии кюобжекта должны быть в пределах 1й единицы компиляции (если в 2х, компилер подставляет "ближайшие" вызовы ф-ий и оно естественно не работает - получается 2 класса с одинаковым именем и 1 к другому не приводится). То есть да, надо выносить в либу.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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