| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Выравнивание текста по центру в QTableView |
| Автор: chesterfielda 21.7.2009, 11:33 |
| Доброго времени суток!!!! Подскажите пожалуйста, как сделать, чтобы текст в столбце таблицы был выровнен по центру.... ui.tableView->verticalHeader()->setDefaultAlignment(Qt::AlignCenter) выравнивает по центру только самый первый столбец, где нумеруются строки |
| Автор: Любитель 22.7.2009, 16:16 |
| По-хорошему ведь используется своя модель (если используется не своя - создаём свою наследованием от той, которую используем сейчас) - соответственно достаточно в методе data вернуть для роли Qt::TextAlignmentRole нужное выравнивание. Можно это выравнивание хранить полем в модели и создать методы для доступа к нему. |
| Автор: asg128 4.9.2009, 22:11 |
| Нужно вызвать следующий метод: void QAbstractItemView::setItemDelegateForColumn ( int column, QAbstractItemDelegate * delegate ) Дополнительно придётся создать свой класс, наследующий QAbstractItemDelegate. Самый лучший кандидат - QStyledItemDelegate, в котором достаточно переопределить виртуальный защищённый метод void initStyleOption ( QStyleOptionViewItem * option, const QModelIndex & ) const (нужно изменить option->displayAlignment). Проверял на Qt 4.4.3. |