Как сделать просчёт размеров всех элементов окна и самой формы до вызова show |
Здравствуйте, гость ( Вход | Регистрация )
Как сделать просчёт размеров всех элементов окна и самой формы до вызова show |
flankerr |
27.11.2008, 18:14
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
1. Как сделать просчёт размеров всех элементов окна и самой формы до вызова show ?
т.е. если до вызова show у дилога спросить его ширину он выдаст фигню (в том случае если рамер не заан фикисровано) 2.Как узнать ширрину виджета таблицы ? ВНИМАНИЕ! сумма ширин всех столбцов НЕ равна (а точнее меньше) ширины виджета таблицы |
|
|
ViGOur |
28.11.2008, 10:46
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
1. посмотри void QWidget::showEvent ( QShowEvent * event ) [virtual protected], для этого правда тебе прийдется переопределять класс виджета.
2. А что говорит geometry и Геометрия окна? |
|
|
flankerr |
28.11.2008, 12:00
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
Зачем мне эвент то?)) если эвент придёт ДО вызова show то элементы ещё будут НЕ просчитаны. А если он придёт после вызова show то диалог уе будет выведен на экран. Функция show инициаолизирует элементы и выводит их на экран.
Впрос в том КАК инициализировать размеры НО не выводить на экран ? Конечно можно тупо залезть в show и переписать исходник со всемм вытекающими но может есть какойнить ЛЕАЛЬНЫЙ способ ? |
|
|
ViGOur |
28.11.2008, 12:50
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А ты попробуй создать тестовый проект, набросать на виджет виджетов и переопределить showEvent:
и увидишь, что координаты дочерних виджетов правильные!Как видишь в данном случае pEvent не нужен. Сообщение отредактировал ViGOur - 28.11.2008, 12:48 |
|
|
Текстовая версия | Сейчас: 24.1.2025, 14:30 |