Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT4] подение при вызове exec() ! 
V
    Опции темы
Remiznik
Дата 6.6.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Странная ошибка трудно обьяснить словами в чем проблема но я попробую!

Создаю простое диалоговое окно и при вызове его в приложение он блокирует работу приложение пока не будет какихто действий в этом диалогового окне !

вот примерный код
 
Код

class myDialog : public QDialog
{}

void MainWindow::showDialog()
{
      myDialog * mydialog=new myDialog;
     // ..... здесь идёт какаято настройка окна типа содержимого LineEdit

     if( mydialog->exec() == QDialog::Accepted )
    {
          // при нажатие на какуто кнопку здесь происходит снятие даных с myDialog
     }
    delete mydialog;


вот примерно такой код часто мной используемый и всегда нормально работающий ! Но на одной форме он падает при вызове exec(). Сразу скажу форма совершено обычная и работает нормально и падает только при вызове exec().

Самое странное во всем этом что иногда она срабатывает нормально а иногда падает и мне ни как не отследить от чего это происходит. Бывает 10 раз вызывается нормально а на 11 упадёт всё приложение .

П.С немогу выложить полный код вызывающий форму и саму форму так как там много всего написано и сейчас с собой точной программы нет !
PM MAIL   Вверх
SABROG
Дата 6.6.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Что говорит отладчик?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
mes
Дата 6.6.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Remiznik @  6.6.2009,  14:48 Найти цитируемый пост)
П.С немогу выложить полный код вызывающий форму и саму форму так как там много всего написано и сейчас с собой точной программы нет ! 

Я думаю, где то Вы допустили ошибку.. и думаю, что она как раз в той части, которую Вы не показали. К сожалению не могу показать точно, где именно у Вас ошибка, как минимум из за того что не обладаю телепатическими способностями.  smile 

Ну вобщем какой вопрос, такой ответ  smile 


--------------------
PM MAIL WWW   Вверх
Remiznik
Дата 7.6.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Просто интересно было бы послушать мысли участников форума почему может падать приложение и почему имено функция exec() и почему имено эта функция приводит к падению ? Просто в документации по этой функции нечего особенного не написано, только то что она блокирует приложение и в результате работы возвращаете значение !

Кстате при падение она у меня не возвращаете никакого значения, и я незнаю в каком имено месте внутри неё происходит сбой !
PM MAIL   Вверх
SABROG
Дата 7.6.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Цитата(Remiznik @  7.6.2009,  13:58 Найти цитируемый пост)
Кстате при падение она у меня не возвращаете никакого значения, и я незнаю в каком имено месте внутри неё происходит сбой ! 

А может она и не падает вовсе, а закрывается? Каким отладчиком пользовался?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Remiznik
Дата 7.6.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



отладчиком не пользуюсь ! к сожеленью очень старый компьютер и ось совсем дубовая трудно на нём что дельное установить и работать тоже трудно .... можно сказать пишу в текстовом редакторе и потом компилирую ... только вот формы создаю в Disinger!

падает точно пишит Segmentation fault . core dump !
PM MAIL   Вверх
SABROG
Дата 7.6.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



gdb консольный.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Remiznik
Дата 7.6.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(SABROG @ 7.6.2009,  14:10)
gdb консольный.

надо попробовать !

но всёравно узнать мнения что такого делает эта функция что приложение падает ))) 
PM MAIL   Вверх
Любитель
Дата 7.6.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Функция не виновата smile 
Падает где-то твой диалог, вероятно кривая работа с памятью..


--------------------
PM MAIL ICQ Skype   Вверх
SABROG
Дата 7.6.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Кстати вместо этого

Код

delete mydialog;



Лучше использовать это

Код

mydialog->deleteLater();


Правда, если честно я не понимаю зачем создавать диалог в куче, а не в стеке. Да и родителя лучше передать:

Код

myDialog * mydialog=new myDialog(this);


Это сообщение отредактировал(а) SABROG - 7.6.2009, 19:38


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Remiznik
Дата 7.6.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Любитель @ 7.6.2009,  19:31)
Функция не виновата smile 
Падает где-то твой диалог, вероятно кривая работа с памятью..

Любитель, я форму отдельно тестировал нармально работает а имено в главной программе падает !


SABROG, всё это пробовал нечего не меняеть так же падете .
PM MAIL   Вверх
SABROG
Дата 7.6.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Попробуй отладчик, потом напиши о результатах.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 7.6.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(Remiznik @  7.6.2009,  20:11 Найти цитируемый пост)
Любитель, я форму отдельно тестировал нармально работает а имено в главной программе падает !

Ну.. что сказать - значит плохо тестировал. Ещё раз - код, написанный вначале, рабочий, хотя и несколько странный, ибо:
Цитата(SABROG @  7.6.2009,  19:35 Найти цитируемый пост)
Правда, если честно я не понимаю зачем создавать диалог в куче, а не в стеке.

Кстати, насчёт родителя - при ручном удалении это как раз излишне.

Как ты его "отдельно" тестировал?


--------------------
PM MAIL ICQ Skype   Вверх
SABROG
Дата 7.6.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Цитата(Любитель @  7.6.2009,  22:53 Найти цитируемый пост)
Кстати, насчёт родителя - при ручном удалении это как раз излишне.

А я думаю наоборот не лишне перестраховаться, если забудешь сам удалить. В конкретно этой ситуации это никак не помогло бы, но лучше выработать привычку.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Remiznik
Дата 8.6.2009, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

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

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

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


 




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


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

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