![]() |
|
![]() ![]() ![]() |
|
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
при первой же моей попытке поэкпериментировать с Qt, наткнулся на ошибку - при нажатии на кнопку Quit вылезает ошибка Windows (типа приложение будет закрыто из-за ошибки, просим извинения за неудобства), а если закрываю обычным красным крестиком то окошко исчезает, но в процессах остается висеть... помогите пожалуйста разобраться, вот код:
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А этот пример из Qt нормально работает ?
Используй отладчик. |
|||
|
||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
SABROG, твой пример абсолютно нормально работает, а вот мой - нет... хотя вроде коннект тот же...
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ну глянь в отладчике.
Это сообщение отредактировал(а) SABROG - 12.3.2008, 15:18 |
|||
|
||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
жаль, но я никогда не работал с отладчиком и вообще не умею им пользоваться...
![]() ![]() -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
а есть какие-нибудь книги по нему?
сорри за два поста Это сообщение отредактировал(а) anatox91 - 12.3.2008, 15:45 -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
На попытке освободить память под какой-то gui'шный объект его выбивает в ntdll:
|
||||
|
|||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
и как можно этого избежать? во всех других примерах с такой же кнопкой работает нормально, а тут на тебе...
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Косяков здесь 2. Первый это попытка Qt удалить самой указатели на дочернией QObject'ы, ей это успешно удается, поэтому при покидании основного блока программы ОС пытается вызвать деструктор еще раз, ибо Qtшные классы создавались в стеке, а не через new. Второй косяк в том, что ты меняешь флаг окна на Tool, похоже Qt считает, что для этого окна родителем является рабочий стол и выход не происходит по quitOnLastWindowClosed (т.е. когда последнее окно приложения закрывается). Эта проблема где-то обсуждалась уже, но решение я не помню. А так вот рабочая версия:
|
|||
|
||||
just_geek |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 13.12.2007 Репутация: 7 Всего: 10 |
создавай виджеты динамически и указывай у виджетов родителя, иначе непонятно в каком порядке они будут уничтожатся...
вот так все замечательно работает... |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
||||
|
||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
SABROG, большое тебе спасибо, разобрался наконец-то, вот конечный код
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
just_geek |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 13.12.2007 Репутация: 7 Всего: 10 |
SABROG,
![]() |
|||
|
||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
эт из-за того что под все виджеты память динамически выделяется, а под главный QWidget (window) - нет... -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |