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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: GUI глюки в Qt5.5  (Прочитано 3348 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Октябрь 23, 2015, 13:03 »

Есть окно QMainWindow, повесил на кнопку полного экрана следующий код:
Код:
if(isFullScreen()) { if(winMax) showMaximized(); else showNormal(); }
else {winMax = isMaximized(); showFullScreen();}

Если окно развернуть, потом перейти в полный экран и выйти из полного экрана, потом отключить разворачивание - окно будет занимать весь экран, а не исходный размер (это глюк 1, причем весь экран монитора, панель пуск не учитывается).
потом нажимаем 3 раза кнопку входа-выхода в полный экран, и у окна в полноэкранном режиме справа и снизу появляется область(это баг 2, примерно равная двойной толщине рамки, с остатками изображения), само окно рисуется корректно, но его размер меньше на эту область.
в qt4, 5.2 такого бага не было.
« Последнее редактирование: Октябрь 29, 2015, 14:35 от deMax » Записан
qate
Супер
******
Offline Offline

Сообщений: 1176


Просмотр профиля
« Ответ #1 : Октябрь 26, 2015, 11:56 »

попробуй restoreGeometry saveGeometry
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #2 : Октябрь 27, 2015, 11:16 »

Можно в принципе, хотя надеюсь в следующей версии починят. (p.s. сделал на пустом проекте, баг присутствует)

Как отличить скрытие/открытие окна от сворачивания/развертывания?
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #3 : Октябрь 29, 2015, 14:37 »

Вот этот код помещает окно в верхний правый угол, причем заголовок выходит за границу экрана и его нельзя схватить.
Код:
void MainWindow::showEvent(QShowEvent *)
{
    setMaximumSize(minimumSizeHint());
    setMinimumSize(minimumSizeHint()); //sizeHint() или minimumSizeHint() не важно, если эту строку убрать, то окно отображается корректно - по центру экрана
}
« Последнее редактирование: Октябрь 29, 2015, 14:39 от deMax » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Октябрь 30, 2015, 10:27 »

deMax, насчёт последнего, ты оперируешь виджетом, а не окном с его декорацией (рамка и заголовок), для работы с  декорацией см. QWidget::frameSize и QDesktopWidget
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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