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 |
18.9.2009, 10:49
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
Предположим пришло событие изменения размера - виджет запускает пересчёт параметров - когда пересчёт закончен то возращемся в цикл обрабоки сообщений - теперь все параметры инициазированы новыми значениями и их можно использовать.
Вот это вроде понятно. Но не совсем ясно что делает QMetaObject::invokeMethod() Если я правильно понял, то я вылавливаю событие изменения размера в нём делаю вызов QMetaObject::invokeMethod() в котором указываю какой надо вызвать метод при возврате в цикл обработки ??? Если так тогда QMetaObject::invokeMethod() аналогичен вызову emit MySignal; ведь сигнал обаботается как раз когда мы вернёмся в цикл обработки. Или я что-то не понял ??? |
|
|
Текстовая версия | Сейчас: 19.12.2024, 8:38 |