crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QTableView и ширина колонок, не работает о_О
Гость_Дмитрий_*
сообщение 11.6.2008, 10:50
Сообщение #1





Гости








    


Люди хелп ми плиз. Что-то я ничего не понимаю.
Использую QTableView, хочу установить определенную ширину колонок, но ничего не работает.
пробовал setColumnWidth(), horizontalHeader()->resizeSection(), пробовал SizeHintRole переопределять в модели, но никакой реакции. Также не могу установить resizeMode для отдельных колонок, хотя , если разом для всех то работает (напр. horizontalHeader()->setResizeMode(QHeaderView::Strecth)). setStretchLastSection и resizeColumnsToContents тоже работают.

Qt 4.3.3
gcc (GCC) 4.2.1 (SUSE Linux)
ОС openSUSE 10.3
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.6.2008, 12:30
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Надо поиском пользоваться: QTreeView и ширина столбца
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Дмитрий_*
сообщение 11.6.2008, 12:57
Сообщение #3





Гости








    


Первым делом воспользовался поиском..
Но дело в том что у меня этот код не работает.
Если я пытаюсь установить какие-то параметры для отдельной колонки - ничего не работает, т.е. компилируется, запускается, но свойства колонки не меняются. Если использую ф-ции которые изменяют все колонки вроде setResizeMode(Stretch) или resizeColumnsToContents - все прекрасно работает.

Qt 4.4.0 - то же самое. Да и не в этом скорее всего дело. Где-то я туплю, но не могу понять где...

MainWidget::MainWidget ( QWidget *parent )
    : QWidget ( parent ), Ui::MainWidget()
{
    setupUi(this);
    tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
}

Это работает как надо, а стоит написать, допустим:
tableView->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);

Все колонки остаются с шириной по умолчанию, 3-я колонка нифига не растягивается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.6.2008, 13:23
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


ты вот это пробывал делать:
setStretchLastSection( false);
перед setResizeMode?

Лучше сделать как в том примере, задать для каждой свой тип:
QHeaderView pTreeHeader new = tableView->horizontalHeader();

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


Новичок


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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 11.6.2008, 14:23) *
ты вот это пробывал делать:
setStretchLastSection( false);
перед setResizeMode?

Пробовал, никакого эффекта.
Я уже и сорцы Qt ковырял, смотрел что к чему.
Если использую QTableWidget то все работает. С QTableView - ничего, хотя это же одни и те же функции...
Кстати, columnWidth возвращает 0 для всех столбцов, к чему бы это?

Я уже голову сломал...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 13.12.2024, 5:32