crossplatform.ru

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

4 страниц V   1 2 3 > »   
Тема закрытаНачать новую тему
> [РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 14:47
Сообщение #1


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

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

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




Репутация:   94  


Сталкнулся с неожидаемым поведением функции QTableView::resizeColumnsToContents(). Ширина столбца подгоняется под ширину содержимого заголовка, в случае если первая строка данног столбца пустая:
Прикрепленное изображение

Если в первой строке данного столбца что-то есть, то подгоняется под него:
Прикрепленное изображение


Я ожидал, что будет подгонятся под самое большое содержимое в столбце. Кто-нибудь может прокоментировать и/или подсказать как добится ожидаемого поведения?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 16.1.2009, 14:52
Сообщение #2


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Мне кажется, придется самому переопределить эту функцию: сортировать значения столбца.

Сообщение отредактировал AD - 16.1.2009, 14:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.1.2009, 14:56
Сообщение #3


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


прям как то не верится.
у тебя вроде бы на втором рисунке подогнан размер под содержимое столбца(первый столбец), но там одинаковые числа. не мог бы ты заполнить столбец разными числами по длинне чтобы данную странность четче увидеть. к примеру самое длинное число не в первой строке...

Сообщение отредактировал kwisp - 16.1.2009, 15:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 15:01
Сообщение #4


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

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

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




Репутация:   94  


Цитата(kwisp @ 16.1.2009, 17:56) *
не мог бы ты заполнить столбец разными числами по длинне чтобы данную странность четче увидеть. к примеру самое длинное число не в первой строке...
попробую, это просто в базе все.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.1.2009, 15:02
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(kwisp @ 16.1.2009, 14:56) *
прям как то не верится.
у тебя вроде бы на втором рисунке подогнан размер под содержимое столбца(первый столбец), но там одинаковые числа. не мог бы ты заполнить столбец разными числами по длинне чтобы данную странность четче увидеть. к примеру самое длинное число не в первой строке...


о! сообразил. для этого у нас первый рисунок.. точечки после цифр это походу свидетельство о сокращении.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 15:02
Сообщение #6


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

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

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




Репутация:   94  


пожалуй такое замечание, в примере где в ячейке пусто - в БД NULL
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.1.2009, 15:10
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


void QTableView::resizeColumnsToContents () [slot]

Resizes all columns based on the size hints of the delegate used to render each item in the columns.

меня смущает этот size hints.


int QTableView::sizeHintForColumn ( int column ) const [virtual protected]

Returns the size hint for the given column's width or -1 if there is no model.

If you need to set the width of a given column to a fixed value, call QHeaderView::resizeSection() on the table's horizontal header.

If you reimplement this function in a subclass, note that the value you return will be used when resizeColumnToContents() or QHeaderView::resizeSections() is called. If a larger column width is required by either the horizontal header or the item delegate, the larger width will be used instead.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 15:17
Сообщение #8


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

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

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




Репутация:   94  


Цитата(kwisp @ 16.1.2009, 18:10) *
меня смущает этот size hints.
дальше то написано
Цитата(kwisp @ 16.1.2009, 18:10) *
each item in the columns
т.е. для каждого элемента в колонке. Вот и не понятно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.1.2009, 15:41
Сообщение #9


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(Litkevich Yuriy @ 16.1.2009, 15:17) *
Цитата(kwisp @ 16.1.2009, 18:10) *
меня смущает этот size hints.
дальше то написано
Цитата(kwisp @ 16.1.2009, 18:10) *
each item in the columns
т.е. для каждого элемента в колонке. Вот и не понятно


я так понимаю hint это рекомендованный размер. так надо найти где его рекомендовать для итемов по содержимому.

еще совершенно глупое предположение. у тебя совершенно случайно не ограничен размер нигде может просто не помещается содержимое????

To distribute the available space according to the space requirement of each column or row, call the view's resizeColumnsToContents() or resizeRowsToContents() functions.

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

а setStretchLastSection(bool) работает у тебя?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 15:58
Сообщение #10


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

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

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




Репутация:   94  


Цитата(kwisp @ 16.1.2009, 18:41) *
To distribute the available space according to the space requirement of each column or row,
Буквально: "Чтобы распространять доступное пространство в соответствии с пространством требующимся каждой колонке или строке"

Цитата(kwisp @ 16.1.2009, 18:41) *
у тебя совершенно случайно не ограничен размер нигде может просто не помещается содержимое????
спциально - нет. Вот все что я делаю с представлением:
ui_hourlyreport.h
view = new QTableView(HourlyReport);
view->setObjectName(QString::fromUtf8("view"));

hourlyreport.cpp
view->resizeColumnsToContents();


Цитата(kwisp @ 16.1.2009, 18:41) *
а setStretchLastSection(bool) работает у тебя?
я его неиспользую т.к. кол-во столбцов велико и они не влазят в окно, а это свой ство нужно для обратного случая, чтобы последний столбец заполнял все доступное пространство в представлении
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 13:33