Название: QTableWidget, замена индикаторов CheckBox + убирание пунктирной рамки Отправлено: km13 от Апрель 06, 2011, 13:31 Доброго времени суток.
Проблема в принципе изъезжена, но долго копался сам перед тем как задать вопрос. Значит имеем QTableWidget и несколько колонок (не важно сколько). В двух (или более) колонках CheckBox'ы. Надо: 1. Заменить индикаторы CheckBox'ов на свои. 2. Убрать рамку пунктирную при выделении. 3. В разных колонках должны быть разные индикаторы (на каждую колонку необходимо настроить свой индикатор). Решения: 1. Индикатор CheckBox'а в QTableWidget меняется в CSS: Код: QTableWidget::indicator:checked 2. Дальше следую инструкции:http://developer.qt.nokia.com/faq/answer/how_can_i_remove_the_dotted_rectangle_from_the_cell_that_has_focus_in_my_qt (http://developer.qt.nokia.com/faq/answer/how_can_i_remove_the_dotted_rectangle_from_the_cell_that_has_focus_in_my_qt) После setItemDelegate() Результат: Рамка убирается, но вместе с ней пропадают замененные индикаторы, и отображаются стандартные. 3. Касательно третьего вопроса, вообще не знаю в какую сторону копать. Тем более, что видимо необходим другой способ решения либо первой проблемы либо второй, так как совместно оба решения ведут себя не так как необходимо. Повторюсь, я потратил не мало времени в поисках решения этих проблем в совокупности (по отдельности проблемы решаются и примеров достаточно). Спасибо за советы. Название: Re: QTableWidget, замена индикаторов CheckBox + убирание пунктирной рамки Отправлено: kolob от Август 29, 2011, 14:48 А есть еще решения на 2 вопрос?
Название: Re: QTableWidget, замена индикаторов CheckBox + убирание пунктир Отправлено: Pretorean от Август 30, 2011, 15:08 Код: void CCheckBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, Название: Re: QTableWidget, замена индикаторов CheckBox + убирание пунктирной рамки Отправлено: kolob от Декабрь 16, 2011, 09:04 Цитировать 2. Убрать рамку пунктирную при выделении. Код: void paint(QPainter* painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { Название: Re: QTableWidget, замена индикаторов CheckBox + убирание пунктирной рамки Отправлено: lighting от Декабрь 16, 2011, 10:06 2. setFocusPolicy(Qt::NoFocus); если не использовать клавиатуру для установки чекбокса то вполне себе решение.
3. Сделать сабклассы для каждого типа чекбоксов и им уже назначить StyleSeet |