Russian Qt Forum
Ноябрь 26, 2024, 23:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: showMaximized не отрабатывает  (Прочитано 9198 раз)
kurbigor
Гость
« : Декабрь 11, 2007, 12:32 »

Есть такая ОС: МСВС (по сути -тот же Linux). Метод showMaximized для основного окна приложения не отрабатывает. Прочел, что в некоторых системах это действительно бывает, и надо как-то выкручиваться.
Никто не знает ссылку, где об этом можно прочесть подробней? (лучше на русском Улыбающийся).
Записан
Emc
Гость
« Ответ #1 : Декабрь 11, 2007, 13:50 »

вариант номер 1: при закрытие программы сохраняешь размер - QMainWindow::saveState
при открытие устанавливаешь - QMainWindow::restoreState ну и двигать в левый угол
Записан
kurbigor
Гость
« Ответ #2 : Декабрь 12, 2007, 10:24 »

to Emc
Т.е. ты предлагаешь открыть, закрыть и снова открыть?
Записан
Emc
Гость
« Ответ #3 : Декабрь 12, 2007, 11:01 »

я так понимаю кнопка развернуть окно все таки работает, поэтому проблема только при запуске программы
и предлагаю сохранять состояние окна в момент закрытия программы и восстанавливать при запуске.
Сохранять можно в файл через QSettings хотя ты можешь зашить byteArray в код программы, но тогда корректно будет работать только на твоем компе
Записан
kurbigor
Гость
« Ответ #4 : Декабрь 12, 2007, 11:55 »

Да, кнопка развернуть окно работает. После запуска, если по ней щелкнуть, окно "доразворачивается" полностью (а так оно "недовернуто" слегка). Как бы этот дополнительный щёлк сделать программным образом, чтобы не заставлять делать это пользователя вручную?
Читал где-то, что надо открыть, запомнить координаты и ещё раз открыть, но где бы об этом подробнее прочесть? А восстанавливать состояние окна в момент закрытия программы не совсем годится, т.к. при следующем запуске оно может быть несколько другим в зависимости от предыдущего сеанса работы.
Записан
Alex03
Гость
« Ответ #5 : Декабрь 12, 2007, 12:59 »

Ещё как вариант - окно совсем без обрамления в координаты 0,0 и размером с десктоп.

PS А что там за WindowManager? Он там один единственный?
Записан
Вячеслав
Гость
« Ответ #6 : Декабрь 12, 2007, 13:03 »

Тама elk .....бнутый на голову Грустный И к сожалению фиг помнеяешь на нормальный.....

По теме : А просто узнать размер десктопа и сказать resize и move(0,0) ?
Записан
Alex03
Гость
« Ответ #7 : Декабрь 12, 2007, 17:03 »

kurbigor попробуй вызвать showMaximized по какомунить событию (типа пункта в меню).
Если будет нормально, то могу ещё предложить извращённый способ - вызывать его через Х мс после отображения (Х=500мс думаю достаточно почти всегда).
Записан
kurbigor
Гость
« Ответ #8 : Декабрь 13, 2007, 10:43 »

elk,elk... он самый... (или она?)
Спасибо. Проверил всё по вашим советам.
showMaximized, похоже, не работает в принципе. Т.е. он отрабатывает, но, видимо, так, как вы предлагаете: именно resize на весь экран (при этом нижняя часть залезает под полоску меню, в этом вся проблема, а кнопка "Развернуть окно" остаётся большим прямоугольником, т.е. окно как бы всё же не развёрнуто). Самое досадное, что если по кнопке щёлкнуть, окно разворачивается как надо. Я пытался как-то сымитировать этот щёлк программно, но не удалось. Может, кто занимался имитацией клика мышью по управляющим элементам окна, похоже, я точку не смог правильно вычислить.

Записан
Emc
Гость
« Ответ #9 : Декабрь 13, 2007, 11:25 »

управлением окна занимается elk а не qt -- так что сымитировать это не получиться
Записан
kurbigor
Гость
« Ответ #10 : Декабрь 13, 2007, 17:57 »

Что же получается?
Доктор сказал: "В морг" ?
 В замешательстве
Записан
Steven_Orko
Гость
« Ответ #11 : Декабрь 17, 2007, 10:50 »

Что же получается?
Доктор сказал: "В морг" ?
 В замешательстве
Можно попробовать еще один разряд )))
Сделай вот что.

Узнай у корневого окна свойство _NET_WORKAREA (Возможно, я ошибаюсь с его написанием, но звучит примерно так).
В этом свойстве записана, как ты уже догадываешься, рабочая область, без панели ELK. Узнаешь ее и resize свое окно до  таких размеров. Там уже посмотри, куда его лучше подвинуть, чтобы правдоподобно было.

Насчет свойств и атрибутов окон читай мой пост в другой ветке или X Window System Reference.
Записан
remach
Гость
« Ответ #12 : Март 11, 2008, 10:38 »

Скорее это проблема QT 3.3. В моих приложениях под Win32 showMaximized ведет себя также, как и под elk. Если смотреть примеры, там тоже нет ни одного приложения, с нормальным открыванием во весь экран. Даже дизайнер открывается не в режиме Maximized.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.074 секунд. Запросов: 21.