Название: QTreeWidget и DoubleCkick() Отправлено: Eagle от Апрель 07, 2007, 14:54 Есть QTreeWidget. Необходимо при двойном щелчке, допустим, на второй колонке отрисовать там QLineEdit чтобы ввести значение.
Посмотрел пример в документации про QItemDelegate в QTableWidget c QTimeEdit и сделал наподобии. Но createEditor(...) почему-то не срабатывал, а вот paint отрабатывал нормально. Вопрос в следующем. Как отрабатывать делегат только при нужном мне событии, а именно по даблклику? Название: QTreeWidget и DoubleCkick() Отправлено: Racheengel от Апрель 08, 2007, 12:50 как я понял, тебе нужно что-то типа этого:
http://ii-system.com/soft/vbrowser/vbrowser.htm компонент в исходниках, делает как раз то, что ты описал. Название: QTreeWidget и DoubleCkick() Отправлено: Eagle от Апрель 09, 2007, 16:01 Если честно, то смотреть тот код не совсем было охото. :) Читаю я чужой код фигово. :(
Я нашёл свою ошибку, она заключалась в том, что я забыл для итема поставить флаг как редактируемого. Для выбора по какому действию редактировать итем можно простым подключением в сигналу, допустим даблклик, и вызова в нём функции edit для этого итема. Других путей не нашёл. Хотя было бы интерестно узнать, можно ли это сделать при помощи флагов итема. Тут возник ещё один вопрос. В функции делегата paint пытаюсь окрасить фон в другой цвет, но нифига не выходит. Но при этом цвет шрифта нормально меняется. В чём может быть загвоздка? option.palette->setColor(QPalette::Background, Qt::green) Название: QTreeWidget и DoubleCkick() Отправлено: goer от Апрель 09, 2007, 16:15 А у делегата стоит setAutoFillBackground( true )?
Кстати, кути в случае с бэком рекомендует пользоваться QPalette::Window, вместо QPalette::Background. Название: QTreeWidget и DoubleCkick() Отправлено: Eagle от Апрель 09, 2007, 16:44 Вот кстати насчёт автофила не знаю, посмотрю.
Насчёт QPalette::Window я в курсе. :) В любом случае спасибо за помощь. Название: QTreeWidget и DoubleCkick() Отправлено: Eagle от Апрель 12, 2007, 12:34 Цитата: "goer" А у делегата стоит setAutoFillBackground( true )? Кстати, кути в случае с бэком рекомендует пользоваться QPalette::Window, вместо QPalette::Background. Вообщем не помогло. Есть ещё какие-нибудь варианты? |