Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DockWidget и plug-in, как обернуть plug-in в DockWidget 
V
    Опции темы
anil
Дата 18.8.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.5.2008

Репутация: 0
Всего: 0



Здравствуйте! 

Проблема вот в чем. Есть несколько самописных плагинов, которые кидаются в дизайнере на QMainWindow. В конструкторе главного окна они "оборачиваются" в доквиджеты, все точно как тут

Компилируется и запускается все без проблем, но при попытке "потаскать" любой из доквиджетов, приложение вылетает. При этом если плагин, который "оборачивается" доквиджетом, создан непосредственно в конструкторе, никаких проблем нет. 

В чем может быть причина?
PM MAIL   Вверх
korbian
Дата 19.8.2009, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 336
Регистрация: 20.2.2007
Где: Penza

Репутация: 1
Всего: 14



минимальный компилируемый пример приведи!


--------------------
korbian ©
PM   Вверх
anil
Дата 19.8.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.5.2008

Репутация: 0
Всего: 0



чего тут компилировать?) 

ui_myproj.h
Код

...
Plugin1 * plugin1 = new Plugin1();
...


mainwindow.cpp
Код

MyMainWindow::MyMainWindow()
{
SetWidgetAsDockable( mUi.plugin1 ); // вылетает
}


mainwindow.cpp
Код

MyMainWindow::MyMainWindow()
{
SetWidgetAsDockable( new Plugin1() ); // нормально работает
}


Что-то вроде того) вопрос в том, почему созданный в уишнике объект отказывается работать, а создаваемый в конструкторе - нет.
PM MAIL   Вверх
korbian
Дата 20.8.2009, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 336
Регистрация: 20.2.2007
Где: Penza

Репутация: 1
Всего: 14



Цитата(anil @  19.8.2009,  18:41 Найти цитируемый пост)
чего тут компилировать?) 

код
Цитата(anil @  19.8.2009,  18:41 Найти цитируемый пост)
Plugin1 * plugin1 = new Plugin1();

здесь, выделяется память под локальную переменную
Цитата(anil @  19.8.2009,  18:41 Найти цитируемый пост)
SetWidgetAsDockable( mUi.plugin1 ); // вылетает

здесь, методу передается переменная член структуры\класса. кода присваивания этому члену переменной, которой выделялась память я не увидел. проверте в отладчике, на что указывает mUi.plugin1 в момент передачи SetWidgetAsDockable.

повторю еще раз, привидите минимальный компилируемый пример, иллюстрирующий вашу проблему, а не выдержки, приведенные вами.



--------------------
korbian ©
PM   Вверх
anil
Дата 20.8.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.5.2008

Репутация: 0
Всего: 0



Цитата

здесь, методу передается переменная член структуры\класса. кода присваивания этому члену переменной, которой выделялась память я не увидел.


странное видение у вас, товарищ специалист) киньте на формочку в дизайнере любой виджет, а потом посмотрите файлик "ui_<somename>.h", там вы многое для себя найдете)

собственно баг побежден, вылет был не связан ни с dockwidget, ни с использованием плагинов, однако факт остается фактом - при инстанцировании непосредственно в конструкторе главного окна все работает нормально, тогда как "уишные" объекты летят...
PM MAIL   Вверх
korbian
Дата 21.8.2009, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 336
Регистрация: 20.2.2007
Где: Penza

Репутация: 1
Всего: 14



Цитата(anil @  20.8.2009,  18:32 Найти цитируемый пост)
странное видение у вас, товарищ специалист) киньте на формочку в дизайнере любой виджет, а потом посмотрите файлик "ui_<somename>.h", там вы многое для себя найдете)

не хамите!

Цитата(anil @  20.8.2009,  18:32 Найти цитируемый пост)
однако факт остается фактом - при инстанцировании непосредственно в конструкторе главного окна все работает нормально, тогда как "уишные" объекты летят

на это я вам и намекал! при отладке должно стать понятно почему! 
 
последний раз повторю, приведите минимальный компилируемый пример и, возможно, вам помогут.


--------------------
korbian ©
PM   Вверх
anil
Дата 21.8.2009, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.5.2008

Репутация: 0
Всего: 0



Да не нервничайте Вы так! Проблема решена, тема закрыта. Или за Вами всегда должно быть последнее слово? smile 
PM MAIL   Вверх
korbian
Дата 21.8.2009, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 336
Регистрация: 20.2.2007
Где: Penza

Репутация: 1
Всего: 14



Цитата(anil @  21.8.2009,  09:23 Найти цитируемый пост)
Или за Вами всегда должно быть последнее слово? 

опять хамите!


--------------------
korbian ©
PM   Вверх
anil
Дата 21.8.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.5.2008

Репутация: 0
Всего: 0



Простите пожалуйста! Всенепременно воспользуюсь Вашими советами! Благодарю за помощь! Нормально?  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0715 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.