Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как узнать необходимую ширину колонки
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
flankerr
Есть строка текста . Её надо вывести в 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..."

Важно! Все просчёты надо выполнить в теле одной функции. Т.е. операции требующие прохода через очередь сообщений надо избежать.
RazrFalcon
Тоже похожая проблема. Не срабатывает resizeColumnsToContents. <_<
madnessw
у меня тоже не срабатывала этот метод проблема решилась когда я задал setSortingEnabled(false);
незнаю в чём глюк но у меня так только заработало (использовал QAbstractItemmodel+QSortFilterProxyModel+QTableView)
Я сначало отключил сортировку потом включил и всё заработало
wiz29
Цитата(flankerr @ 31.3.2011, 15:44) *
Просчёт ширины при помощи фонтметрикса
  iW = m_View.fontMetrics().boundingRect("1234567890").width()
выдаёт близкий но ошибочный результат. К примеру вместо строки "1234567890" будет установлена меньшая ширина и будет выведено "1234567..."

В твоем случае скорее всего не учитывается отступы в самих элементах таблицы, в результате если не помещается 1 симол их заменяют тремя точками отсюда и результат.
flankerr
Цитата(wiz29 @ 5.4.2011, 11:51) *
В твоем случае скорее всего не учитывается отступы в самих элементах таблицы, в результате если не помещается 1 симол их заменяют тремя точками отсюда и результат.
Спасибо кэп за озвучку очевидных фактов :lol:

Вопрос как раз стоит как узнать эти самые "отступы".
wiz29
прежде чем грубить, покажи пост в котором прозвучал вопрос про отступы...
flankerr
Цитата(wiz29 @ 5.4.2011, 17:33) *
прежде чем грубить, покажи пост в котором прозвучал вопрос про отступы...

ГРубить ??? :o: А вопроса про отступы нет. Вопрос чётко и подробно задан в начале темы. Твой ответ увы лишь озвучил то что я не стал расписывать.

Вообще имперически отсупы от тектса равны одному пробелу слева и спарва - но это может быть просто совпадение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.