[РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок |
Здравствуйте, гость ( Вход | Регистрация )
[РЕШЕНО] 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, 15:02
Сообщение
#5
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
прям как то не верится. у тебя вроде бы на втором рисунке подогнан размер под содержимое столбца(первый столбец), но там одинаковые числа. не мог бы ты заполнить столбец разными числами по длинне чтобы данную странность четче увидеть. к примеру самое длинное число не в первой строке... о! сообразил. для этого у нас первый рисунок.. точечки после цифр это походу свидетельство о сокращении. |
|
|
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, 15:41
Сообщение
#9
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
меня смущает этот size hints. дальше то написано 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 |
To distribute the available space according to the space requirement of each column or row, Буквально: "Чтобы распространять доступное пространство в соответствии с пространством требующимся каждой колонке или строке"у тебя совершенно случайно не ограничен размер нигде может просто не помещается содержимое???? спциально - нет. Вот все что я делаю с представлением:ui_hourlyreport.h
hourlyreport.cpp
а setStretchLastSection(bool) работает у тебя? я его неиспользую т.к. кол-во столбцов велико и они не влазят в окно, а это свой ство нужно для обратного случая, чтобы последний столбец заполнял все доступное пространство в представлении
|
|
|
Текстовая версия | Сейчас: 26.11.2024, 18:39 |