crossplatform.ru

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

> Как узнать необходимую ширину колонки, установить необходимую ширину
flankerr
  опции профиля:
сообщение 31.3.2011, 15:44
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

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




Репутация:   0  


Есть строка текста . Её надо вывести в QTableView

QStandardItem* item = new QStandardItem();
item->setText("1234567890");
m_Model.setItem(0,0,item);
Надо установить ширину колонки ( см код ниже переменная iW ) необходимую для вывода строки целиком. При этом ширина должна быть минимальной.
m_View.setColumnWidth ( 0, iW);
Вызов
 m_View.resizeColumnsToContents()
не даёт результатов.
Просчёт ширины при помощи фонтметрикса
  iW = m_View.fontMetrics().boundingRect("1234567890").width()
выдаёт близкий но ошибочный результат. К примеру вместо строки "1234567890" будет установлена меньшая ширина и будет выведено "1234567..."

Важно! Все просчёты надо выполнить в теле одной функции. Т.е. операции требующие прохода через очередь сообщений надо избежать.

Сообщение отредактировал flankerr - 31.3.2011, 15:53
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
wiz29
  опции профиля:
сообщение 5.4.2011, 10:51
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


Цитата(flankerr @ 31.3.2011, 15:44) *
Просчёт ширины при помощи фонтметрикса
  iW = m_View.fontMetrics().boundingRect("1234567890").width()
выдаёт близкий но ошибочный результат. К примеру вместо строки "1234567890" будет установлена меньшая ширина и будет выведено "1234567..."

В твоем случае скорее всего не учитывается отступы в самих элементах таблицы, в результате если не помещается 1 симол их заменяют тремя точками отсюда и результат.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




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