QHeaderView Как узнать ширину ВСЕЙ области заголовка ? |
Здравствуйте, гость ( Вход | Регистрация )
QHeaderView Как узнать ширину ВСЕЙ области заголовка ? |
flankerr |
16.9.2009, 17:19
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
Есть диалог на нём есть QTreeView надо узнать ширину заголовка для того чтобы правильно установить размеры колонок.
QTreeView::size().width(); выдаёт адекватный размер ,но ширина заголовка(QHeaderView) меньше чем ширина QTreeView, поэтому использовать ширину QTreeView нельзя иначе появляется горизонтальная прокрутка. header()->viewport()->size().width(); header()->size().width(); Эти два метода выдают одинаковый результат и он тоже не тенят на искомый (на порядок меньший) Сообщение отредактировал flankerr - 16.9.2009, 17:37 |
|
|
flankerr |
17.9.2009, 10:20
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
SABROG,
Читай внимательней;) "Сумма всех колонок НЕ РАВНА ширине выделенной области под заголовок!" Уж не знаю как ещё объяснить то... надо сделать руками то что делает автоматом вызов header()->setResizeMode(2,QHeaderView::Stretch); точнее то что должен делать но НЕ делает! Совсем на пальцах в наджеде что так меня уж тчоно поймут: Допустим Х1 это ширина первой колонки Х2 ширина второй колонки Х3 ширина третье колонки. Y - это сумма всех колонок. Получаем Х1 + Х2 + Х3 = Y1 Однако есть ещё Z - ширина области видимости и Z не равна Y Задача: Найти такое Х2 при котором Y будет равно Z Эта задачка для Х3 решается вызовом setStretchLastSection Для не последней, а прозвольной колонки должна решаться вызовом header()->setResizeMode(Х2,QHeaderView::Stretch); Однако в Qt4.3.3 содержиться БАГ и это функция НЕ работает! ps: Rocky и SABROG, вы предлогаете искать Y а мне надо узнать Z Сообщение отредактировал flankerr - 17.9.2009, 10:21 |
|
|
Текстовая версия | Сейчас: 18.12.2024, 17:13 |