Russian Qt Forum
Ноябрь 24, 2024, 13:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeWidget и DoubleCkick()  (Прочитано 4727 раз)
Eagle
Гость
« : Апрель 07, 2007, 14:54 »

Есть QTreeWidget. Необходимо при двойном щелчке, допустим, на второй колонке отрисовать там QLineEdit чтобы ввести значение.
Посмотрел пример в документации про QItemDelegate в QTableWidget c QTimeEdit и сделал наподобии. Но createEditor(...) почему-то не срабатывал, а вот paint отрабатывал нормально.
Вопрос в следующем. Как отрабатывать делегат только при нужном мне событии, а именно по даблклику?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Апрель 08, 2007, 12:50 »

как я понял, тебе нужно что-то типа этого:

http://ii-system.com/soft/vbrowser/vbrowser.htm

компонент в исходниках, делает как раз то, что ты описал.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Eagle
Гость
« Ответ #2 : Апрель 09, 2007, 16:01 »

Если честно, то смотреть тот код не совсем было охото. Улыбающийся Читаю я чужой код фигово. Грустный
Я нашёл свою ошибку, она заключалась в том, что я забыл для итема поставить флаг как редактируемого.
Для выбора по какому действию редактировать итем можно простым подключением в сигналу, допустим даблклик, и вызова в нём функции edit для этого итема. Других путей не нашёл. Хотя было бы интерестно узнать, можно ли это сделать при помощи флагов итема.

Тут возник ещё один вопрос.
В функции делегата paint пытаюсь окрасить фон в другой цвет, но нифига не выходит. Но при этом цвет шрифта нормально меняется. В чём может быть загвоздка?
option.palette->setColor(QPalette::Background, Qt::green)
Записан
goer
Гость
« Ответ #3 : Апрель 09, 2007, 16:15 »

А у делегата стоит setAutoFillBackground( true )?
Кстати, кути в случае с бэком рекомендует пользоваться QPalette::Window, вместо QPalette::Background.
Записан
Eagle
Гость
« Ответ #4 : Апрель 09, 2007, 16:44 »

Вот кстати насчёт автофила не знаю, посмотрю.

Насчёт QPalette::Window я в курсе. Улыбающийся
В любом случае спасибо за помощь.
Записан
Eagle
Гость
« Ответ #5 : Апрель 12, 2007, 12:34 »

Цитата: "goer"
А у делегата стоит setAutoFillBackground( true )?
Кстати, кути в случае с бэком рекомендует пользоваться QPalette::Window, вместо QPalette::Background.

Вообщем не помогло. Есть ещё какие-нибудь варианты?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 23.