Название: Выравнивание DecorationRole Отправлено: Termit от Октября 28, 2011, 22:07 Есть QTableView, которой в качестве модели назначена QSqlQueryModel в которой, в свою очередь, в методе QSqlQueryModel::data устанавливается иконка для ячейки таблицы
Код
Иконка отображается, все хорошо, но вот хочется чтобы эта иконка была выровнена не "влево", а "по центру". Как это сделать? Название: Re: Выравнивание DecorationRole Отправлено: Termit от Октября 28, 2011, 22:37 Нагуглил решение, но оно немного не то что я хотел
http://stackoverflow.com/questions/1707967/how-do-i-place-qtablewidgetitem-icon-in-center-of-cell Описано там следующее решение Код
Только иконку сделать центр по вертикали и центр по горизонтали не получается :-( Центр по горизонтали - да, а вот по вертикали либо верх, либо низ... Вопрос все ещё актуален. Название: Re: Выравнивание DecorationRole Отправлено: andrew.k от Октября 30, 2011, 00:56 Qt::TextAlignmentRole или QTableView alignment items (http://www.qtcentre.org/archive/index.php/t-27154.html)
Название: Re: Выравнивание DecorationRole Отправлено: Termit от Октября 30, 2011, 13:42 Qt::TextAlignmentRole или QTableView alignment items (http://www.qtcentre.org/archive/index.php/t-27154.html) Qt::TextAlignmentRole - не дает никакого эффекта на QDecorationRole По поводу ссылки. Метод displayAlignment - "This variable holds the alignment of the display value for the item." Опять же QDecorationRole к value никакого отношения не имеет. Название: Re: Выравнивание DecorationRole Отправлено: andrew.k от Октября 30, 2011, 15:01 Qt::TextAlignmentRole или QTableView alignment items (http://www.qtcentre.org/archive/index.php/t-27154.html) Qt::TextAlignmentRole - не дает никакого эффекта на QDecorationRole Тебе в метод data() надо добавить обработку Код
По поводу ссылки. Метод displayAlignment - "This variable holds the alignment of the display value for the item." Опять же QDecorationRole к value никакого отношения не имеет. Какой метод? там описано как сделать делегата, который осуществляет нужное выравнивание.Название: Re: Выравнивание DecorationRole Отправлено: Termit от Октября 30, 2011, 15:20 Что эта чушь вообще значит? Тебе в метод data() надо добавить обработку "Эта чушь" обозначает, что роль Qt::TextAlignmentRole работает только с ТЕКСТОМ или если более точно, то TextAlignmentRole действует на роль Qt::DisplayRole Я же спрашиваю за Qt::DecorationRole. Название: Re: Выравнивание DecorationRole Отправлено: andrew.k от Октября 31, 2011, 05:06 Ты так криво выражаешься, что я не врубился. "Роль действует на роль."
"Но я понял, ваш язык." (с) КВН. Да следовало бы догадаться из названия TextAlignmentRole :o По ссылке там тоже текст выравнивается. Я не уловил этот момент. Косяк. Тогда других вариантов нет, кроме как писать своего делегата. Название: Re: Выравнивание DecorationRole Отправлено: kolob от Июня 10, 2013, 18:26 Определить свой делегат. Переопределить функцию paint() в нем. Что то типа того:
Код: if (index.column() == 1) //столбец где иконка нужна по центру Название: Re: Выравнивание DecorationRole Отправлено: Termit от Июня 10, 2013, 19:01 Спасибо, но в конечном счете удовлетворил тот вариант, что был нагуглен.
|