Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xTr1m от Март 22, 2010, 10:06



Название: Автоматическая ширина колонок
Отправлено: xTr1m от Март 22, 2010, 10:06
Здравствуйте, есть QTableWidget. Задаю несколько колонок, теперь я хочу, что все колонки пропорционально увеличили свою ширину, заполнив таким образом всю ширину моего QTableWidget. Существует ли для этого специальный метод? Нашел resizeColumnsToContents, но это все же немного не то, что мне нужно. Или данную операцию нужно производить вручную?


Название: Re: Автоматическая ширина колонок
Отправлено: GreatSnake от Март 22, 2010, 10:13
tableWidget->horizontalHeader()->setResizeMode( QHeaderView::Stretch );


Название: Re: Автоматическая ширина колонок
Отправлено: xTr1m от Март 22, 2010, 10:27
Спасибо большое. Правда, я сам тоже уже наткнулся. Никак не могу пока привыкнуть к столь всеобъемлющей справке по Qt. Просмотрев несколько разделов, думаю что уже все, наверное, просто этого нет. А потом, пока больше случайно, нахожу =)) Еще раз спасибо.


Название: Re: Автоматическая ширина колонок
Отправлено: xTr1m от Март 22, 2010, 10:33
Хотя нет, это не совсем то что нужно. Допустим есть 2 колонки шириной 10 и 20, а размер таблицы 40. В итоге я хотел бы получить колонки шириной 15 и 25, а QHeaderView::Stretch делает их обеих по 20. То есть все же получается, что нужно вручную? И что делать когда пользователь изменяет размер окна? Тогда понадобится пересчитывать ширину снова, а сигнала типа resize я у диалога не вижу


Название: Re: Автоматическая ширина колонок
Отправлено: Makss от Март 22, 2010, 10:45
tableWidget->setColumnWidth(0, 100);
tableWidget->horizontalHeader()->setResizeMode( QHeaderView::Stretch );
tableWidget->horizontalHeader()->setResizeMode( 0, QHeaderView::Fixed );

вот и будет у вас первая колнка 100 пикселей, а всё остальное растянется


Название: Re: Автоматическая ширина колонок
Отправлено: lit-uriy от Март 22, 2010, 10:51
>>а сигнала типа resize я у диалога не вижу
есть такое событие у каждого виджета:
void QWidget::resizeEvent ( QResizeEvent * event )   [virtual protected]


Название: Re: Автоматическая ширина колонок
Отправлено: xTr1m от Март 22, 2010, 11:26
Спасибо, теперь разобрался.