Название: QTableWidget && Border Отправлено: Lord Glue от Декабрь 15, 2008, 09:20 Добрый день! Проблема с QTableWidget - ни у него, ни у QTableWidgetItem нет свойств по работе с границами ячейки. А очень надо, т.к. экспорт таблицы идет в html. И хочется иметь полный контроль над внешним видом таблиц. Как это побороть???
Название: Re: QTableWidget && Border Отправлено: SABROG от Декабрь 15, 2008, 12:48 Делегатами. Придется рисовать границы самому.
Название: Re: QTableWidget && Border Отправлено: Lord Glue от Декабрь 15, 2008, 12:54 А можно подробнее? у itemDelegate нет никаких методов для border`s
Название: Re: QTableWidget && Border Отправлено: SABROG от Декабрь 15, 2008, 12:59 Придется переопределять метод paint у собственного класса на базе QItemDelegate. Надо будет добавить собственные параметры, которые будут влиять на отрисовку границ (ширина границ, стиль, цвет и т.п.). Тут уже смотри сам, параметры могут быть общими для всей таблицы или каждый QWidgetItem будет иметь свой уникальный параметр. В зависимости от выбора будет разная реализация.
Название: Re: QTableWidget && Border Отправлено: BRE от Декабрь 15, 2008, 13:22 Добрый день! Проблема с QTableWidget - ни у него, ни у QTableWidgetItem нет свойств по работе с границами ячейки. А очень надо, т.к. экспорт таблицы идет в html. И хочется иметь полный контроль над внешним видом таблиц. Как это побороть??? А как ты экспортируешь таблицу в html? Как рисунок?Может лучше формировать таблицу в коде html, т.е. использовать <TABLE BORDER=1...><TR><TD>...</TD><TD>...</TD></TR></TABLE>. Название: Re: QTableWidget && Border Отправлено: Lord Glue от Декабрь 15, 2008, 19:47 Ну естественно в коде html. Как рисунок не надо вообще. И т.к. у td можно писать style (а потом парсить как xml) то в нем и надо бы писать border-bottom и все остальные бордеры.
Название: Re: QTableWidget && Border Отправлено: BRE от Декабрь 15, 2008, 21:48 Ну естественно в коде html. Как рисунок не надо вообще. И т.к. у td можно писать style (а потом парсить как xml) то в нем и надо бы писать border-bottom и все остальные бордеры. Так а в чем проблема?Название: Re: QTableWidget && Border Отправлено: Lord Glue от Декабрь 16, 2008, 11:08 а проблема в том, чтобы при редактировании tableWidget помимо свойств склеивания ячеек(setSpan),настройки цвета текста в ячейке, а также его шрифта(вид, размер), было бы еще и свойство что-то вроде setBorder... Чтобы каждой ячейке можно было назначить свои границы. К примеру: у ячейки (2,2) поставить border-bottom: solid 2px red
Т.е. у каждой ячейки свои параметры границ Название: Re: QTableWidget && Border Отправлено: BRE от Декабрь 16, 2008, 11:27 а проблема в том, чтобы при редактировании tableWidget помимо свойств склеивания ячеек(setSpan),настройки цвета текста в ячейке, а также его шрифта(вид, размер), было бы еще и свойство что-то вроде setBorder... Чтобы каждой ячейке можно было назначить свои границы. К примеру: у ячейки (2,2) поставить border-bottom: solid 2px red Если тебе нужны эти свойства, то наследуй свой класс от QTableWidgetItem и добавь эти параметры.Т.е. у каждой ячейки свои параметры границ Название: Re: QTableWidget && Border Отправлено: Lord Glue от Декабрь 16, 2008, 12:03 Но у QTableWidgetItem тоже нет таких параметров-методов-свойств. ((
Название: Re: QTableWidget && Border Отправлено: BRE от Декабрь 16, 2008, 12:09 Но у QTableWidgetItem тоже нет таких параметров-методов-свойств. (( Наследуй свой класс от QTableWidgetItem и добавь в него что нужно.Название: Re: QTableWidget && Border Отправлено: pastor от Декабрь 16, 2008, 12:24 Наследуй свой класс от QTableWidgetItem и добавь в него что нужно. + делегат (с переопределенным paint) для отрисовки границ QTableWidgetItem Название: Re: QTableWidget && Border Отправлено: SABROG от Декабрь 16, 2008, 13:49 В принципе можно попробывать style sheets (http://doc.trolltech.com/main-snapshot/stylesheet-examples.html#customizing-qtableview) Если не нужна кастомизация каждой ячейки. Правда придется все-равно куда-то данные записать о том какого стиля используются бордюры и цвета, чтобы не парсить текстовый style sheet.
|