Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
anater |
6.10.2010, 10:45
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0
|
Итак нубский вопрос.
Создаю свой виджет и вкладываю их штук двадцать в QFrame. Так вот кусок который выводит мне размеры явно гонит все виджеты пишет размером 640х480, хотя визуально получается максисмум 70х100. Дело в том счто далее тут должна будет присутствовать графика и для нормальной отрисовки нуно знать реальные размеры и координаты. Что нуно сделать чтобы их получить? HELP!!! Заранее спасибо за вменяемые ответы |
|
|
|
|
Алексей1153 |
6.10.2010, 10:50
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
а geometry() что возхвращает ?
|
|
|
|
|
anater |
6.10.2010, 11:04
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Алексей1153 @ 6.10.2010, 10:50) Link а geometry() что возхвращает ? аналогично. тоже что-то нереальное. но на экране товсе как надо менеджер размещений все двадцать штук аккуратненько вписал во фрейм. а вот рельные размеры никак... может имеет значение что я их пытаюсь получить еще в конструкторе? |
|
|
|
|
wiz29 |
6.10.2010, 11:11
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
этот вызов нужно делать не в конструкторе, поставь его в resizeEvent и будет тебе счастье
|
|
|
|
|
Авварон |
6.10.2010, 11:13
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0
|
Да, именно это и имеет значение - Qt не знает как вы будете показывать свой виджет - через show(), showMaximized() или showFullScreen() и не может вернуть размер.
|
|
|
|
|
Алексей1153 |
6.10.2010, 11:20
Сообщение
#6
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
в конструкторе он тоже должен работать. Но косяк не в этом. А в том, что вызывать для получения размеров нужно в обработчике paintEvent - ведь там будешь графику рисовать свою
|
|
|
|
|
ufna |
6.10.2010, 11:23
Сообщение
#7
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5
|
Цитата(Алексей1153 @ 6.10.2010, 12:20) Link в конструкторе он тоже должен работать. Но косяк не в этом. А в том, что вызывать для получения размеров нужно в обработчике paintEvent - ведь там будешь графику рисовать свою дак в конструкторе оно и работает. Именно такой размер имеет виджет в случае автора. Только потом он его размещает к примеру на лейауте - и при размещении размер изменяется. А если сделать просто show() - то будет то, что size() в конструкторе и даст. Потому эти данные нужно брать в paintEvent, если это именно для отрисовки нужно. |
|
|
|
|
anater |
6.10.2010, 12:09
Сообщение
#8
|
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0
|
Всем огромное спасибо за участие!
paintEvent куально помог! |
|
|
|
|
Litkevich Yuriy |
6.10.2010, 16:50
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(Алексей1153 @ 6.10.2010, 15:20) Link в конструкторе он тоже должен работать. нет, т.к. конструктор это ещё процесс создания объекта.
|
|
|
|
|
Алексей1153 |
6.10.2010, 17:22
Сообщение
#10
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Litkevich Yuriy, и что ?
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 15:38 |