QTableWidget, WordWrap и высота строки |
Здравствуйте, гость ( Вход | Регистрация )
QTableWidget, WordWrap и высота строки |
Amadey |
17.10.2014, 15:42
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 1.4.2013 Пользователь №: 3773 Спасибо сказали: 0 раз(а) Репутация: 1 |
Всем доброго времени суток.
Как сделать что бы текст полностью входил в ячейку меняя высоту ячейки? Я сделал перенос строки таким образом:
но перенос происходит только в пределах текущей высоты ячейки, не меняя её, т.е. если высоты ячейки хватает на две строки, то перенос будет только один на середине текста, и всё что не войдёт обрежется по ширине. |
|
|
lanz |
17.10.2014, 22:56
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Во первых, в setTextAlignment нельзя передать Qt::TextWordWrap, это член другого перечисления:
http://qt-project.org/doc/qt-4.8/qt.html#AlignmentFlag-enum http://qt-project.org/doc/qt-4.8/qt.html#TextFlag-enum Чтобы сделать перенос текста, используйте resizeRow(s)ToContent: http://qt-project.org/doc/qt-4.8/qtablevie...eRowsToContents Например так:
|
|
|
Amadey |
21.10.2014, 11:44
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 1.4.2013 Пользователь №: 3773 Спасибо сказали: 0 раз(а) Репутация: 1 |
Во первых, в setTextAlignment нельзя передать Qt::TextWordWrap, это член другого перечисления: Позвольте с вами не согласиться. 1) setTextAlignment принимает в качестве аргумента int, а не член перечисления, 2) AlignmentFlag и TextFlag не пересекаются 3) и самое главное это работает, хоть и не совсем так как нужно. Ваш вариант работает как нужно, спасибо. |
|
|
lanz |
21.10.2014, 22:09
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата Позвольте с вами не согласиться. Хорошо, но чтобы это в последний раз Из исходников qt: Вот здесь значение которое вы передали сохраняется в роли Qt::TextAlgnmentRole qtablewidget.h
А вот место где оно достается: qstyleditemdelegate.cpp
И далее: qcommonstyle.cpp
После чего смотрим в qstyle.cpp
Цитата 2) AlignmentFlag и TextFlag не пересекаются Это тоже неверно, но это уже придирки по мелочи Цитата Qt::AlignBaseline 0x0100 Aligns with the baseline. Qt::TextSingleLine 0x0100 Treats all whitespace as spaces and prints just one line. Цитата 3) и самое главное это работает, хоть и не совсем так как нужно. Это вообще не работает, передавать или не передавать - все равно будет перенос по словам в пределах высоты строки. Только что попробовал. |
|
|
Amadey |
23.10.2014, 15:46
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 1.4.2013 Пользователь №: 3773 Спасибо сказали: 0 раз(а) Репутация: 1 |
Разгром по всем пунктам
Нужно быть внимательнее. |
|
|
Текстовая версия | Сейчас: 20.4.2024, 10:46 |