Название: Z-order (top-level widows) Отправлено: Igors от Января 05, 2014, 12:25 Добрый день
Есть top-level окна напр 1, 2, 3 с одинаковыми атрибутами. 2 перекрывает 3, а 1 перекрывает 2 (1 сейчас в фокусе). Как мне добиться расклада 1, 3, 2 ? Спасибо Название: Re: Z-order (top-level widows) Отправлено: Bepec от Января 05, 2014, 12:58 Модальность окон не предлагать? Что 1 <- 3 <-2 модальны друг к другу?
Ну или как вариант вызвать их по очереди через show. Если флаги одинаковы, то они и расположатся в порядке вызова. Ещё вопрос - их положение должно быть абсолютным? Т.е. если щелкнуть на нижнее, оно должно стать верхним, или нет? Название: Re: Z-order (top-level widows) Отправлено: Old от Января 05, 2014, 13:26 Как мне добиться расклада 1, 3, 2 ? Вытащить вперед 3 окно;Вытащить вперед 1 окно. Топовыми окнами занимаются оконные менеджеры, думаю для каждой платформы можно найти более удобные нативные средства. Название: Re: Z-order (top-level widows) Отправлено: Igors от Января 05, 2014, 13:58 show() не имеет эффекта если окно видимо. Сделать последним можно через QWidget::lower(), то есть (1, 2, 3) можно сделать (1, 3, 2) вызвав w2->lower(). Но это не спасает при болee длинной цепочке, напр (1, 2, 3, 4) -> (1, 3, 2, 4). Вызывать lower/raise последовательно не годится т.к. окно всплывает/прячется немедленно. А QWidget::stackUnder к сожалению не имеет эффекта для top-level.
Топовыми окнами занимаются оконные менеджеры, думаю для каждой платформы можно найти более удобные нативные средства. В карбоне помню SendBehind, на какаве не знаю, придется изучать, плюс лезть в вонючие кишки Вындоуз. И файлы порасписывать или загадить текст #if'ами. Дороговато обойдется совет знатока :)Название: Re: Z-order (top-level widows) Отправлено: Old от Января 05, 2014, 14:18 show() не имеет эффекта если окно видимо. Для поднятия окна можно попробовать void QWidget::activateWindow().Дороговато обойдется совет знатока :) А кто в этом виноват?Название: Re: Z-order (top-level widows) Отправлено: Igors от Января 06, 2014, 14:12 Ладно, др вопросик (тоже Z-Order): как при нажатии Cmd+Tab (Ctl+Tab на Вындоуз) переключаться между top-level окнами?
Спасибо Название: Re: Z-order (top-level widows) Отправлено: Igors от Января 06, 2014, 14:41 И еще на ZOrder (чтобы не скучно было)
Вот есть удобные ф-ции QApplication::activeWindow и avtiveModalWidget. А где такая же для окна с флагом Qt::Tool ? Спасибо |