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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение всего текста без обрезания в QTableWidget  (Прочитано 5570 раз)
vulko
Гость
« : Июль 18, 2014, 13:29 »

Ситуация такая, есть QTableWidget, который растягивается по родителю (qdialog).

Код:
    verticalHeader()->setVisible(false);
    setRowCount(0);
    setColumnCount(8);
    horizontalHeader()->setResizeMode(QHeaderView::Stretch);
    setSelectionBehavior(QAbstractItemView::SelectRows);
    setSelectionMode(QAbstractItemView::SingleSelection);
    setFocusPolicy(Qt::NoFocus);
    setVerticalScrollMode(QAbstractItemView::ScrollPerItem);
    setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
    setEditTriggers(QAbstractItemView::NoEditTriggers);
    verticalHeader()->setDefaultSectionSize(15);
    resizeColumnsToContents();

Размер столбцов выбирается автоматом внутри QT.

Все вроде неплохо, но периодически цифры в ячейках обрезаются до вида "12...", вместо "12345", хотя соседние столбцы можно было бы и уменьшить...

Можно ли как-то запретить подобные обрезания текста, или придется вручную вычислять размеры столбцов, чего очень не хотелось бы...?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Июль 22, 2014, 09:50 »

Смотрите в сторону QTableView(Widget)::horizontalHeader::setSectionResizeMode(QHeaderView::ResizeMode)
Записан
vulko
Гость
« Ответ #2 : Июль 23, 2014, 09:09 »

Смотрите в сторону QTableView(Widget)::horizontalHeader::setSectionResizeMode(QHeaderView::ResizeMode)

Спс, но у меня 4.8, там есть только
void QHeaderView::setResizeMode ( int logicalIndex, ResizeMode mode )

если правильно понимаю, могу по индексу для каждого столбца задать ResizeMode.

Попробую такой вариант, возможно заработает.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Июль 23, 2014, 10:18 »

в 4.8 это есть, просто называется немного по-другому, поищите внимательней, я в 4.8 тоже это юзал если память не изменяет.
Записан
s_Creator
Гость
« Ответ #4 : Июль 25, 2014, 06:47 »

попробуй
Код:
resizeColumnsToContents ()
Записан
vulko
Гость
« Ответ #5 : Июль 25, 2014, 09:26 »

попробуй
Код:
resizeColumnsToContents ()

данные в таблице постоянно обновляются, придется видимо делать вызов при каждом обновлении данных...
Записан
vulko
Гость
« Ответ #6 : Август 05, 2014, 15:30 »

Если вдруг кому потребуется, то для каждого столбца/строки можно задавать ResizeMode.

У меня например первый слобец растягивается, остальные по размерам содержимого.

Код:
    horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
    horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
    horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
    horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
    horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
    horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
    horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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