Название: Delegate в QTableView Отправлено: qtист от Сентябрь 01, 2009, 16:15 Создал QTableView - в одном из столбце должен быть QTextEdit(без редактирования)
Делаю через ui.tableView->setItemDelegateForColumn(1,new ItemDelegatePing(this)); Но он появляется,если пытаюсь редактировать эту ячейку. Надо чтоб QTextEdit появился сразу - редектироваться ячейка не будет,там просто будет печататься текст. Как это побороть :'( Название: Re: Delegate в QTableView Отправлено: Rcus от Сентябрь 01, 2009, 16:45 openPersistentEditor/setIndexWidget/whatever
Название: Re: Delegate в QTableView Отправлено: Пантер от Сентябрь 01, 2009, 16:46 Нужно переопределить paintEvent у делегата. Поищи по форуму, уже не раз все разжевывалось.
Название: Re: Delegate в QTableView Отправлено: qtист от Сентябрь 02, 2009, 10:46 Я дико извиняюсь,но чё-то не смог найти :'(.
А можно ещё раз разжевать и выплюнуть? :-X Название: Re: Delegate в QTableView Отправлено: Пантер от Сентябрь 02, 2009, 11:39 Допустим, http://www.prog.org.ru/topic_7848_0.html
Название: Re: Delegate в QTableView Отправлено: qtист от Сентябрь 03, 2009, 16:10 Получилось через openPersistentEditor ::)
Вдогонку сопутствующий вопрос: вывожу в QTextEdit некоторый блок информации - блок показывается с начала, как сделать,чтоб была видна сразу последняя строка(типа был сделан автоматически скроллинг)? Название: Re: Delegate в QTableView Отправлено: spectre71 от Сентябрь 03, 2009, 19:27 Создал QTableView - в одном из столбце должен быть QTextEdit(без редактирования) Делаю через ui.tableView->setItemDelegateForColumn(1,new ItemDelegatePing(this)); Но он появляется,если пытаюсь редактировать эту ячейку. Надо чтоб QTextEdit появился сразу - редектироваться ячейка не будет,там просто будет печататься текст. Как это побороть :'( 1) Зачем нужен QTextEdit(без редактирования)?? 2) Может проще нарисовать рамочку?(или что-то типа того) 3) Делаем свой делегат и переопределяем virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) 4) Если требуется отрисовка именно QTextEdit, да еще в текущем стиле, похоже(не полностью уверен) нужно рисовать фрейм: Код
|