![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
JohnZ |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Здравия Всем !
Помогите решить проблему "вылета" арр при повторном открытии QSA QSWorkbench. Код. Всё "лишнее" убрано, ес-сно ...
Порядок действий для получения ошибки такой, - выбираем в окне QTreeView скрипт на редактирование. Открывается QSA QSWorkbench. Можем выбрать другой скрипт, он добавится в QSWorkbench второй вкладкой. И теперь если закрыть окно QSWorkbench нажав на крестик в правом углу, а затем выбрать любой скрипт в окне QTreeView на редактирование, то наблюдается стабильный вылет в отладчик. Помогите решить сей трабл, плз. Я понимаю, что с логикой напутал, но по-другому не получается, по причине отсутствия у QSA QSWorkbench конструктора по умолчанию. Не переписывать-же его ... |
|
|
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Насколько я понимаю, при закрытии удаляется QSWorkbench? Почему бы тогда не хранить его в родительском виджете?
|
|
|
JohnZ |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Так точно ! Указатель (и память) QSWorkbench остались, а он сам удалён.
В родительском виджете хранить низзя, по причине MDI, - он (QSWorkbench) принадлежит дочернему окну, т.е. открытому проекту. В АРР можно открыть несколько проектов, и дрыг\драп между-ними "куски" ... У каждого проекта свой (отдельный) QSWorkbench ! Т.е. я так понимаю трабл нерешаем, или придётся переписывать QSWorkbench ? |
|
|
lanz |
![]()
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Можно создавать QSWorkbench в editAll, если он удален. Чтобы последить за ним, можно использовать QPointer http://qt-project.org/doc/qt-4.8/qpointer.html.
Но как то это выглядит костыльно. Можете приложить минимальный проект, побаловаться? |
|
|
JohnZ |
![]()
Сообщение
#5
|
Участник ![]() ![]() Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
До минимального уже далековато, но попробую. Не обещаю это сделать быстро. Мыло есть ?
В принципе, могу и весь слить, судя по ответам в другой ветке, вы видимо сможете оказать посильную помощь в дальнейшей разработке технологии ... ?! За основу взяты примеры mdi и simpledommodel из qt 4.5.3, и ес-сно "Ананас". С ним знакомы ? Собранная либа QSA 1.2.3 есть ? Ведь без неё никак. Компилю из крейтора 1.2.90. |
|
|
JohnZ |
![]() ![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Ура ! Заработало !
Вопрос решился правкой исходников QSA ! Добавил я ему void closeEvent(QCloseEvent *event); и отправляю сей эвент в игнор ![]() Вопрос закрыт !!! |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 18:57 |