![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
breeve |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Если в Mdi приложении открыто одно окно и я его закрываю падает вся программа.
Есть функция, смена фокуса. При смене фокуса в PropertyWindow меняются параметры на параметры того окна которое сейчас активно. Если я пишу: Раскрывающийся текст
То все правильно привсаивается, меняются параметры, но при закрытии все падает. Еще я пытался сделать так, у меня есть указатель который указывает на коно которое активно и зменяет его или забирает от туда данные. Указатель класса Test*. Делал как QMdiSubWindow. И изменял параметры через pOpenTest->widget()->myMethod(); Сообщение отредактировал breeve - 14.5.2010, 15:23 |
|
|
breeve |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Заметил такую особенность что программа падает, не при закрытии окна-потомка, а если фокус с окна-потомка перейдет на что-либо другое. если перевести фокус на другое приложение, мое тоже падает.
Сообщение отредактировал breeve - 13.5.2010, 15:02 |
|
|
grio |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 87 Регистрация: 11.11.2009 Пользователь №: 1221 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Когда закрываешь дочернее окно - посылай сигнал родителю.
Я делаю так, к примеру:
Сообщение отредактировал grio - 13.5.2010, 15:08 |
|
|
breeve |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
grio, сделал так как ты сказал, те же яйца только в профиль.. Программа все равно падает
Сообщение отредактировал breeve - 13.5.2010, 15:47 |
|
|
grio |
![]()
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 87 Регистрация: 11.11.2009 Пользователь №: 1221 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
grio, сделал так как ты сказал, те же яйца только в профиль.. Программа все равно падает Получается, что возможно проблема не связана с MdiArea. Зачем ты используешь qobject_cast, когда есть специальная функция QMdiArea::currentSubWindow () const Сообщение отредактировал grio - 13.5.2010, 18:12 |
|
|
breeve |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Зачем ты используешь qobject_cast, когда есть специальная функция QMdiArea::currentSubWindow () const Есть функция но она возвращает QMdiSubWindow *. А мне необходимо далее использовать методы класса который я вставил методом addSubWindow() . Я могу также сделать currentSubWindow()->widget()->а далее мой метод,но только это не возможно поскольку возвращает он QWidget* а не указатель на мой порожденный от QWidget класс, потому я и перевожу) Исправил. В функции смена фокуса вставил такую строку:
Сообщение отредактировал breeve - 14.5.2010, 12:57 |
|
|
breeve |
![]()
Сообщение
#7
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Исправил я одну проблему осталась другая. Как мне отлавливать смену фокуса на любое другое приложение? Программа падает если я нажимаю куда угодно только не на нее.
|
|
|
grio |
![]() ![]()
Сообщение
#8
|
![]() Студент ![]() Группа: Участник Сообщений: 87 Регистрация: 11.11.2009 Пользователь №: 1221 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Исправил я одну проблему осталась другая. Как мне отлавливать смену фокуса на любое другое приложение? Программа падает если я нажимаю куда угодно только не на нее. Ящитаю, твой код надо пересмотреть в сторону использования механизма сигналов и слотов для взаимодействия потомков. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 11:07 |