Размеры главного окна
От: Robin20  
Дата: 11.02.17 18:18
Оценка: 4 (1)
Пытаюсь изменить размер окна при помощи функции resize. Но она не учитывает размер фрейма (то есть с заголовком и.т.п.). Хотел скорректировать, что-то типа

 resize(myFrameSize - (frameSize() - size()));


Но функция frameSize() почему-то возвращает даже на 1 единицу меньше чем size().

Вроде простейшая задача. Как сделать правильно?
Re: Размеры главного окна
От: _hum_ Беларусь  
Дата: 12.02.17 10:54
Оценка:
Здравствуйте, Robin20, Вы писали:


R>Пытаюсь изменить размер окна при помощи функции resize. Но она не учитывает размер фрейма (то есть с заголовком и.т.п.). Хотел скорректировать, что-то типа


R>
R> resize(myFrameSize - (frameSize() - size()));
R>


R>Но функция frameSize() почему-то возвращает даже на 1 единицу меньше чем size().


R>Вроде простейшая задача. Как сделать правильно?


так а вы про эти нюансы в кусре: window-geometry ?
Re[2]: Размеры главного окна
От: Robin20  
Дата: 12.02.17 12:27
Оценка:
Здравствуйте, _hum_, Вы писали:

__>Здравствуйте, Robin20, Вы писали:



R>>Пытаюсь изменить размер окна при помощи функции resize. Но она не учитывает размер фрейма (то есть с заголовком и.т.п.). Хотел скорректировать, что-то типа


R>>
R>> resize(myFrameSize - (frameSize() - size()));
R>>


R>>Но функция frameSize() почему-то возвращает даже на 1 единицу меньше чем size().


R>>Вроде простейшая задача. Как сделать правильно?


__>так а вы про эти нюансы в кусре: window-geometry ?




Ну да. Как раз и спрашиваю как эти нюнасы обойти. Ну то есть грубо говоря мне нужно при запуске чтобы окно программы например занимало весь экран или ровно половину экрана. Ну есть неужели нет способа это сделать вычислив корректные размеры до того как окно появится? Может какое-то сообщение перехватывать надо? Как это обычно делается?
Re[3]: Размеры главного окна
От: _hum_ Беларусь  
Дата: 12.02.17 14:12
Оценка: +1
Здравствуйте, Robin20, Вы писали:

R>Здравствуйте, _hum_, Вы писали:


__>>Здравствуйте, Robin20, Вы писали:



R>>>Пытаюсь изменить размер окна при помощи функции resize. Но она не учитывает размер фрейма (то есть с заголовком и.т.п.). Хотел скорректировать, что-то типа


R>>>
R>>> resize(myFrameSize - (frameSize() - size()));
R>>>


R>>>Но функция frameSize() почему-то возвращает даже на 1 единицу меньше чем size().


R>>>Вроде простейшая задача. Как сделать правильно?


__>>так а вы про эти нюансы в кусре: window-geometry ?




R>Ну да. Как раз и спрашиваю как эти нюнасы обойти. Ну то есть грубо говоря мне нужно при запуске чтобы окно программы например занимало весь экран или ровно половину экрана. Ну есть неужели нет способа это сделать вычислив корректные размеры до того как окно появится? Может какое-то сообщение перехватывать надо? Как это обычно делается?


так там же написано, что в общем случае (для любой ос) этого нельзя сделать:

X11 provides no standard or easy way to get the frame geometry once the window is decorated. Qt solves this problem with nifty heuristics and clever code that works on a wide range of window managers that exist today. Don't be surprised if you find one where QWidget::frameGeometry() returns wrong results though.


и кстати, вы функцией size() и ей подобными, надеюсь, пользуетесь после отображения окна?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.