Юзаю виджет mdiArea.
Проблема:
Если открыто много окошек в mdiArea, то при закрытии N-го окна, активным становиться N+1
или
при закрытии последнего окна активным становиться первое.
Так же и в примерах: "Main Windows -> MDI"
Мне такой расклад не подходит.
Мне надо, что бы при закрытии Чилда активным стало не следующее окошко, а предыдущее, то есть при закрытии N-го окна, активным становиться N-1
Можно конечно и цикл использовать:
foreach (QMdiSubWindow *window, mdiArea->subWindowList())
MdiChild *mdiChild = ...
....
Всё таки циклом ...
Делаю так:
void RuhCinCapSub::ActivatedWindow()
{
foreach (QMdiSubWindow *window, gl->mdiArea->subWindowList())
{
if(window->widget()->toolTip().toInt() == this->toolTip().toInt())
{
QMdiSubWindow *existing = window;
if (existing) gl->mdiArea->setActiveSubWindow(existing);
}
}
}
а ассоциацию применить нельзя разве ? Коли уж идентификатор уникальный
Кстати, от foreach у меня один негатив остался - он (и это написано в доке) сначала делает копию контейнера и только копию шмонает. (Я пользуюсь циклом for с итератором)
BRE, я об этом не думаю, мне просто не требуется такое поведение, ведь я ХОЧУ менять исходный контейнер через итераторы, а тут такая подстава Я первый раз долго не мог понять , что происходит. Потом меня в доку ткнули
Алексей1153,
я не знаю подробностей, ты их знаешь А говорю про, например. std::map
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)