crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> [Не решено]MdiArea, закрытие потомков
breeve
  опции профиля:
сообщение 13.5.2010, 13:49
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

Спасибо сказали: 9 раз(а)




Репутация:   1  


Если в Mdi приложении открыто одно окно и я его закрываю падает вся программа.
Есть функция, смена фокуса. При смене фокуса в PropertyWindow меняются параметры на параметры того окна которое сейчас активно. Если я пишу:
Раскрывающийся текст
connect(mainArea,SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(changeFocus(QMdiSubWindow*)));
...
void TestCreator::changeFocus(QMdiSubWindow *wid)
{
    Test *w = qobject_cast<Test *>(wid);
    if(!w)
        return;
    pOpenTest = w;
    t_line[0].setText(pOpenTest->windowTitle());
}
То он не может конвертировать QMdiSubWindow* в Test*. И соответственно дальше ретурна дело не идет. Если я пишу:
Test *w = qobject_cast<Test *>(wid->widget());
То все правильно привсаивается, меняются параметры, но при закрытии все падает.
Еще я пытался сделать так, у меня есть указатель который указывает на коно которое активно и зменяет его или забирает от туда данные. Указатель класса Test*. Делал как QMdiSubWindow. И изменял параметры через pOpenTest->widget()->myMethod();

Сообщение отредактировал breeve - 14.5.2010, 15:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 14:39