Russian Qt Forum
Сентябрь 30, 2024, 22:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4.3.1 Высота строки в таблице  (Прочитано 4375 раз)
Tonal
Гость
« : Октябрь 01, 2007, 13:26 »

Встала такая задачка - сделать все строки в таблице одинаковой высоты.
Причём в строку должно вмещаться 2 строки текста.

Полазил по ассистенту - нашёл, что это можно сделать, выставив для вертикального QHeaderView resizeMode в QHeaderView::Fixed и задав подходящий defaultSectionSize в пикселах.

Кто-нибудь знает как можно просто его рассчитать?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Октябрь 01, 2007, 13:50 »

Можно поиграться с QFontMetrics для определения области занимаемой текстом
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Aleksey_A
Гость
« Ответ #2 : Октябрь 02, 2007, 10:12 »

Для выравнивания строк по высоте я использовал setRowHeight(row_num,TableRowHeight)

TableRowHeight=17;
int i=0;
while (!in.atEnd())
   {
      tableWidget->setRowHeight(i,TableRowHeight);
   
                in >> SomeValue;

      QTableWidgetItem *Item = new QTableWidgetItem(tr("%1").arg(SomeValue));
      Item->setTextAlignment(Qt::AlignVCenter);
      tableWidget->setItem(i,0,Item);

                i++;
    }

а насчет 2 строк текста может быть попробовать установить свойство wordWrap=true, для автоматического переноса слов?
Записан
Tonal
Гость
« Ответ #3 : Октябрь 02, 2007, 13:07 »

Сделал так:
Код:
#python
  if rowSize and v_header:
    v_header.setResizeMode(QtGui.QHeaderView.Fixed)
    QtGui.QFontMetrics(view.font())
    v_header.setDefaultSectionSize(
      QtGui.QFontMetrics(view.font()).height() * rowSize)
Где rowSize - количество строчек, а v_header - вертикальный заголовок.
Единственный косяк в том, что при rowSize = 1 высота строки меньше высоты по умолчанию.
Это из за того, что учитывается возможный размер чекбокса или иконки.
Но это мне было воспроизводить лениво.

2Aleksey_A
wordWrap=true делает строки разной высоты, что не устраивает заказчика.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 20.