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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 31.3.2011, 16:32
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Тоже похожая проблема. Не срабатывает resizeColumnsToContents. <_<
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
madnessw
  опции профиля:
сообщение 5.4.2011, 3:38
Сообщение #3


Студент
*

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

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




Репутация:   0  


у меня тоже не срабатывала этот метод проблема решилась когда я задал setSortingEnabled(false);
незнаю в чём глюк но у меня так только заработало (использовал QAbstractItemmodel+QSortFilterProxyModel+QTableView)
Я сначало отключил сортировку потом включил и всё заработало
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 5.4.2011, 10:51
Сообщение #4


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

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

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




Репутация:   12  


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

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


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

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

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




Репутация:   0  


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

Вопрос как раз стоит как узнать эти самые "отступы".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 5.4.2011, 16:33
Сообщение #6


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

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

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




Репутация:   12  


прежде чем грубить, покажи пост в котором прозвучал вопрос про отступы...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 8.4.2011, 13:46
Сообщение #7


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

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

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




Репутация:   0  


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

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

Вообще имперически отсупы от тектса равны одному пробелу слева и спарва - но это может быть просто совпадение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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