crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> mdiArea->closeActiveSubWindow() - глюк или так и должно быть ?, Если открыто много окошек, то при закрытии первого активным становитьс
potkin
  опции профиля:
сообщение 15.12.2010, 13:37
Сообщение #1


Студент
*

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

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




Репутация:   0  


Юзаю виджет mdiArea.
Проблема:
Если открыто много окошек в mdiArea, то при закрытии N-го окна, активным становиться N+1
или
при закрытии последнего окна активным становиться первое.
Так же и в примерах: "Main Windows -> MDI"
Мне такой расклад не подходит.

Мне надо, что бы при закрытии Чилда активным стало не следующее окошко, а предыдущее, то есть при закрытии N-го окна, активным становиться N-1

Можно конечно и цикл использовать:
foreach (QMdiSubWindow *window, mdiArea->subWindowList())
MdiChild *mdiChild = ...
....

пробегать по всем Чилдам и проверять "что-то", но это менингит.
Может есть более лёгкий способ ???

Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
potkin
  опции профиля:
сообщение 16.12.2010, 10:27
Сообщение #2


Студент
*

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

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




Репутация:   0  


Всё таки циклом ...
Делаю так:
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);
        }
    }
}

В "toolTip()" присваиваю уникальный идентификатор и по нём и ищу.

П.С. Может есть всё таки какие-то встроенные средства ???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.12.2010, 10:44
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


а ассоциацию применить нельзя разве ? Коли уж идентификатор уникальный

Кстати, от foreach у меня один негатив остался - он (и это написано в доке) сначала делает копию контейнера и только копию шмонает. (Я пользуюсь циклом for с итератором)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 16.12.2010, 10:59
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(Алексей1153 @ 16.12.2010, 10:44) *
Кстати, от foreach у меня один негатив остался - он (и это написано в доке) сначала делает копию контейнера и только копию шмонает. (Я пользуюсь циклом for с итератором)

А почему ты думаешь, что копирование Qt-контейнера такая тяжелая операция (грубо говоря это инкремент счетчика). :)
А вот реально копия будет сделана только, если при попытке его модификации (точнее при вызове не константного метода).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.12.2010, 11:16
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


BRE, я об этом не думаю, мне просто не требуется такое поведение, ведь я ХОЧУ менять исходный контейнер через итераторы, а тут такая подстава :) Я первый раз долго не мог понять , что происходит. Потом меня в доку ткнули
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
potkin
  опции профиля:
сообщение 16.12.2010, 13:47
Сообщение #6


Студент
*

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

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




Репутация:   0  


Алексей1153,
Цитата
а ассоциацию применить нельзя разве ? Коли уж идентификатор уникальный

А можно поподробнее ... ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.12.2010, 15:13
Сообщение #7


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


я не знаю подробностей, ты их знаешь :) А говорю про, например. std::map
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 27.12.2024, 7:45