Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kambala от Февраль 20, 2012, 15:06



Название: [РЕШЕНО] растянуть QTableWidget в QGridLayout
Отправлено: kambala от Февраль 20, 2012, 15:06
Здравствуйте. Никак не получается заставить QTableWidget растягиваться до нужных размеров внутри QGridLayout. Размер должен быть точно под заданные размеры строк и столбцов и фиксированным.

Начальный размер таблицы задан в .ui файле, ограничения на размер не стоят, количество строк и столбцов известно заранее. Пробовал всякие sizePolicy - ничего не помогает.

В английской версии проблем практически нет (кроме изменяющейся высоты), т.к. в .ui файле размер выставлен под неё, но если загрузить русскую версию, то ширина таблицы не подстраивается под ширину колонок. resizeColumnsToContents() не подходит, т.к. столбцы становятся слишком маленькими. Сейчас размер таблицы тупо выставлен под русскую версию, но при таком подходе в английской версии ширина не уменьшается, что выглядит некрасиво.

Помогите пожалуйста. Тестовый проект прикрепляю.


Название: Re: растянуть QTableWidget в QGridLayout
Отправлено: spirits25 от Февраль 21, 2012, 15:39
попробуй так
Код:
        minimum = QtGui.QSizePolicy.Minimum
        self.table_widget.setSizePolicy(minimum, minimum)
это на питоне, мне помогло.


Название: Re: растянуть QTableWidget в QGridLayout
Отправлено: kambala от Февраль 21, 2012, 15:48
по вертикали растянуло до предела (теперь видно пустое место, но это решается фиксированием высоты), а по горизонтали - ни в какую. может это связано с тем, что в сетке присутствуют элементы с фиксированной длинной (поля ввода, спинбоксы)? нет, выключил фикисрование их размеров - всё равно таблица не растягивается.


Название: Re: растянуть QTableWidget в QGridLayout
Отправлено: kambala от Февраль 21, 2012, 16:16
получилось! оказалось надо было горизонтальному хедеру вызвать setResizeMode(QHeaderView::Stretch). и вертикальному заодно, чтобы пустого места не было.