Всем доброго времени
Начит грабля такая:создаю скрытый виджет,и сразу делаю ему resize()
его размер естественно после вызова метода не меняется,а изменится только тогда когда сделаем setVisible(true) или show(),
но в то время пока виджет скрытый в нем производятся вычисления в которых учавствует его size()
Есть ли возможность насильно изменить размер виджета?
P.S. В исходниках либы ответа не нашел, возможно плохо искал)
Qt4: Изменение размера скрытого виджета
Модератор: Модераторы разделов
-
TwisT
- Сообщения: 265
- ОС: Debian
Qt4: Изменение размера скрытого виджета
Linux user #432536.
-
Assuri
- Сообщения: 678
- Статус: #include <brain.h>
- ОС: Fedora 12
Re: Qt4: Изменение размера скрытого виджета
TwisT писал(а): ↑11.11.2007 01:03Всем доброго времени
Начит грабля такая:создаю скрытый виджет,и сразу делаю ему resize()
его размер естественно после вызова метода не меняется,а изменится только тогда когда сделаем setVisible(true) или show(),
но в то время пока виджет скрытый в нем производятся вычисления в которых учавствует его size()
Есть ли возможность насильно изменить размер виджета?
P.S. В исходниках либы ответа не нашел, возможно плохо искал)
Ну во-первых это неправда. Размер даже скрытого виджета должен меняться. По крайней мере у меня меняется. А во-вторых можно попробовать такие функции: setBaseSize(QSize&), setMinimumSize(QSize&) и т.п.
-
TwisT
- Сообщения: 265
- ОС: Debian
Re: Qt4: Изменение размера скрытого виджета
Что значит неправда, сам посмотри в исходник qwidget.cpp метод setVisible(bool) если мне не веришь.
Я не точно описал ситуацию, есть скрытый виджет, на нем лейаут, в лейауте несколько виджетов.
Вот те, которые в лейауте изменяют свой размер только тогда, когда становятся видимыми. Проблема была решена так:
Всем пасибо
Код: Выделить всё
// activate our layout before we and our children become visible
if (d->layout)
d->layout->activate();Я не точно описал ситуацию, есть скрытый виджет, на нем лейаут, в лейауте несколько виджетов.
Вот те, которые в лейауте изменяют свой размер только тогда, когда становятся видимыми. Проблема была решена так:
Код: Выделить всё
p2->resize(700,350);
p2->layout()->activate();Всем пасибо
Linux user #432536.