Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Evgeniya от Октябрь 13, 2009, 09:05



Название: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: Evgeniya от Октябрь 13, 2009, 09:05
Добрый день!!
У меня есть формочка с таблицей. И вот при разворачивании формы во весь экран, таблица увеличивается, а вот размер столбцов остается тем же..Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался бы


Название: Re: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: CroCIV от Октябрь 13, 2009, 09:40
Код:
MyQTableView->horizontalHeader()->setResizeMode( ResizeMode ); 

где ResizeMode мб:
QHeaderView::Interactive (меняется пользователем при работе)
QHeaderView::Fixed (не меняется)
QHeaderView::Stretch (меняется сам, заполняя свободное пространство, то что ты ищешь)
QHeaderView::ResizeToContents (меняется сам, по ширине контента)


Название: Re: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: Evgeniya от Октябрь 13, 2009, 10:09
Спасибо большое!!!Это то, что нужно ;)


Название: Re: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: Evgeniya от Октябрь 13, 2009, 10:54
А чтоб задать, например, начальный размер столбцов и чтоб потом при растяжении они пропорционально увеличивались так можно сделать???...
Просто при использовании
Код:
ui.tableZakaz->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
Все столбцы становятся одинакого размера...


Название: Re: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: CroCIV от Октябрь 13, 2009, 11:03
можно, но это уже нужно замыкать сигнал изменения размера таблицы с твоим слотом изменения размера столбцов
а столбцы вычислять из ширины таблицы например помноженой на некоторый коэфициент, кутеха же не знает че ты хочешь :)
можно даже коэфициентики эти вычислять динамически в моменты когда пользователь ручками размеры меняет. будет достаточно гибко. т.е. получится - пользователь настраивает размер столбцов сам, потом начинает растягивать таблицу, столбцы при этом растягиваются тоже сохраняя пропорции


Название: Re: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: BaltikS от Октябрь 13, 2009, 11:11
Можно так void setStretchLastSection ( bool stretch )


Название: Re: Как можно сделать, чтобы при увеличении таблицы размер столбцов тож увеличивался
Отправлено: ranet от Октябрь 18, 2009, 21:01
Можно так void setStretchLastSection ( bool stretch )
Если пользователь не будет менять размеры таблицы вручную, то это - самое то. Особенно если в конструкторе формы написать
Код:
MyQTableView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); 
Тогда при изменении данных в таблице столбцы будут "авторегулироваться" по содержимому, а последний - подбирать размер так, чтобы таблица целиком помещалась.