crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QTableWidget, как указать колонку для авто-растягивания?
flankerr
  опции профиля:
сообщение 26.11.2008, 16:49
Сообщение #1


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

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

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




Репутация:   0  


к примеру есть horizontalHeader()->setStretchLastSection(true);
а если мне надо чтобы свойство а вто-растягивания обаладал НЕ последняя колонка а любая другая то как это сделать ???

и вообще как сделать чтобы часть колонок были фиксированной ширины а часть колонок авто-растягивались ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 26.11.2008, 17:33
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Попробуй:
QHeaderView *pTreeHeader = tableView->horizontalHeader();

pTreeHeader->setStretchLastSection( false);
pTreeHeader->setResizeMode( 0, QHeaderView::Stretch);
pTreeHeader->setResizeMode( 1, QHeaderView::Interactive);
pTreeHeader->setResizeMode( 2, QHeaderView::Stretch);
pTreeHeader->setResizeMode( 3, QHeaderView::Interactive);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 26.11.2008, 18:08
Сообщение #3


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

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

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




Репутация:   0  


вроде бы должно бы работать но НЕ работает.

Есть диалог на дилог "бросается" табличка, диалог может менять свои размеры. Надо чтобы табличка растяшивалась\сжималась вместе с диалогом БЕЗ появления полос прокрутки. ПРи этом два поля таблички должны быть фиксированной ширины а одно поле должно растягиваться\сжимать автоматом по свободному месту.

Если бы нужное мне поле было бы последним то horizontalHeader()->setStretchLastSection(true); делал точ то надо!
но ситуация ослоджняется что нужное мне колонка НЕ последняя. setResizeMode даёт весьма НЕ красивый результат. Мало того что авто-растягивание НЕ срабатывает так ещё и при растягивание диалога колонки сами растягиваются и появлется полоса прокрутки...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 27.11.2008, 18:10
Сообщение #4


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

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

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




Репутация:   0  


долго мучался и империчиским путём пришёл к выводу что реализация Stretch очень глючная. Т.е. реально сделать Stretch можно или всем или посленей колонке.
В моём случае надо всё расчитыать и персчитывать только вручную! В связи с чем возникает ряд лругих вопросов но они о них в другой теме.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vdann
  опции профиля:
сообщение 28.1.2009, 23:42
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 28.1.2009
Пользователь №: 513

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




Репутация:   0  


Один из вариантов который я знаю и использую - необходимо переопределить свой класс, там отлавливать событие resizeEvent, помимо этого завести vector<pair<int, BOOL>>, в котором хранить предпологаемый размер и признак растягивания, либо фиксации столбца, номер в массиве будет соответсвовать номеру столбца. В переопределенном resizeEvent для фиксированных столбцов int - это размер в пикселях, а для растягиваемых на ваше усмотрение (по ровну между всеми, либо коэффециент растягивания).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 2.2.2009, 15:20
Сообщение #6


Танцор диско
***

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

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




Репутация:   -1  


как выравнивать текст по центру?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 2.2.2009, 16:03
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(kuler @ 2.2.2009, 15:20) *
как выравнивать текст по центру?


item->setTextAlignment(0,Qt::AlignCenter);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 2.2.2009, 16:19
Сообщение #8


Танцор диско
***

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

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




Репутация:   -1  


SABROG, для каждого чтоли? ну почему через дизайнер нельзя??!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 2.2.2009, 16:27
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(kuler @ 2.2.2009, 16:19) *
SABROG, для каждого чтоли? ну почему через дизайнер нельзя??!!!

Через дизайнер много чего нельзя. Напиши метод, который будет перебирать все итемы в виджете и проставлять свойство.

Сообщение отредактировал SABROG - 2.2.2009, 16:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 2.2.2009, 17:09
Сообщение #10


Танцор диско
***

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

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




Репутация:   -1  


а размеры ячеек как задавать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 30.11.2024, 0:45