| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > окрашивание ячейки таблицы |
| Автор: kuvshinka 5.12.2013, 14:55 | ||
| Мне надо написать функцию, окрашивающую заданную ячейку таблицы заданным цветом. Цвет должен задаваться как в таблице стилей (css). Я делаю так
но как мне, например, переключиться именно c черного цвета на синий, т.е. как запомнить текущий цвет ячейки, задаваемый вышеуказанным способом — дополнительно заводить строковый двумерный массив, хранящий цвета всех ячеек? И вообще, оптимален ли (единственен ли) метод окрашивания заданной ячейки, приведенный выше, учитывая, что цвет должен задаваться как в таблице стилей, а не как QColor(0,0,0)? |
| Автор: math64 5.12.2013, 15:07 |
| Таблицей стилей можно задать цвет всех ячеек таблицы, цвет выделеннной ячейки, цвет отдельно чётных и нечётных строк, но не конкретных ячеек. Для прорисовки ячеек используется делегат и если назначить свой, в методе viod paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const можно подменить параметр option |
| Автор: kuvshinka 5.12.2013, 21:02 |
| ну вот я и пытаюсь задать цвет конкретной ячейке путем ее выделения, для чего использую метод setSelected и соответствующий стиль (секцию selection-background-color). подскажите пож-та пример с подменой параметра в своем делегате... |
| Автор: math64 5.12.2013, 22:29 | ||
Поскольку используется QTableWidget,можно так:
|
| Автор: kuvshinka 9.12.2013, 20:59 |
| math64: Вы предлагаете нужные мне ячейки забить обычными QLabel-ми? но мне надо иметь возможность кликать на них, а у QLabel нет метода OnClick()... |
| Автор: math64 10.12.2013, 07:13 |
| Можно заполнить кнопками или другими подходящими виджетами |
| Автор: kuvshinka 11.12.2013, 21:32 | ||
По поводу объединения ячеек в заголовках таблицы нашла пример:
В основном мне все в нем понятно (кроме, наверное, необходимости класса MyHeaderModel), но как мне его модифицировать, чтобы получить заголовок вида с возможностью клика по ячейкам С1...С4 и изменением их цвета - см. рисунок |