crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
smartchecker
  опции профиля:
сообщение 9.11.2011, 16:51
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 83
Регистрация: 7.9.2011
Пользователь №: 2853

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть ли какой-нибудь готовый способ делать размеры столбцов примерно так.
Допустим, несколько столбцов фиксированной ширины, а остальные динамически
меняют свой размер, разделяя между собой оставшееся свободное место поровну.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 10.11.2011, 7:43
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Теоретически это делается так.

Реализуется наследник от QTableWidget
и переопределяется метод virtual void resizeEvent ( QResizeEvent * event ),
в котором и рассчитываются размеры столбцов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 10.11.2011, 8:36
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Или ставиться фильтр событий, где отлавливаем изменение размеров виджета, и расставляем строки нужной ширины. Думаю, что наследование в данном случае будет лишним.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DOGG
  опции профиля:
сообщение 10.11.2011, 12:24
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


можно сделать вот так:

первые две колонки фиксированной ширины:
ui->tableAdverts->horizontalHeader()->resizeSection(0, 10);
ui->tableAdverts->horizontalHeader()->resizeSection(1, 20);
ui->tableAdverts->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
ui->tableAdverts->horizontalHeader()->setResizeMode(1, QHeaderView::Fixed);
три последних растягиваются по имеющемуся пространству:
ui->tableAdverts->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
ui->tableAdverts->horizontalHeader()->setResizeMode(3, QHeaderView::Stretch);
ui->tableAdverts->horizontalHeader()->setResizeMode(4, QHeaderView::Stretch);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.5.2025, 8:28