Название: resizeEvent при старте Отправлено: dd от Октябрь 11, 2010, 00:56 Задача простая.
На главном окне сидит виджет таблицы. Таблица растягивается layout - ом. Нужно, чтобы столбцы таблицы выравнивались в соответствии с размерами окна. Создавать наследованный класс таблицы не хочу. Делаю так: Код: void MainWindow::resizeEvent ( QResizeEvent * event ) Проблема следющая - при старте программы ширина столбцов выставляется неправильно, так как внутри функции resieEvent дочепрние виджеты еще не растянуты layout-ом. То есть в дебаг печататеся QSize(100, 30). При растягивании окна мышом все нормализуется. Как решить проблему? Конечно понимаю, что можно по таймеру при старте ресайзить, но это не айс. Название: Re: resizeEvent при старте Отправлено: GreatSnake от Октябрь 11, 2010, 08:20 Цитировать Конечно понимаю, что можно по таймеру при старте ресайзить, но это не айс. Это почему? Можно, конечно, перед show() вызвать adjustSize(), но не факт что поможет, т.к. qt-ишные виджеты сами используют таймеры.Название: Re: resizeEvent при старте Отправлено: Aleksey_Zh от Октябрь 11, 2010, 11:07 Если я все правильно понял - можно глянуть в сторону QSettings и загружать размеры принудительно из файла...
Название: Re: resizeEvent при старте Отправлено: dd от Октябрь 11, 2010, 11:24 >> Это почему?
Не хотелось по такому пустяку нагромождать лишний код. Но, возможно, придется. Спасибо за ответы. Название: Re: resizeEvent при старте Отправлено: Akon от Октябрь 11, 2010, 20:52 делать однократно в MainWindow::showEvent()
|