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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Нарисовать rect с засечками  (Прочитано 3519 раз)
Red Devil
Гость
« : Май 25, 2008, 19:43 »

Не знаю как правильно назвать - вообщем этот метод используется в krusader и total commander по умолчанию для отображения текующего выделенного элемента списка. Выглядит примерно так :
 -------
|тектс |
 -------
Какие опции для шрифта/кисти нужно использовать чтобы получить такое ?

и еще такая проблема. Вбил такой код :
Код:
void MyEdit::paintEvent( QPaintEvent * event )
{
QPainter painter(viewport());

QRect r = cursorRect();
r.setX(0);
r.setWidth(viewport()->width());
painter.fillRect(r, QBrush(QColor(230, 230, 230) ) );

QTextEdit::paintEvent( event );
}
В винде вылетает assert Qt-шный. В чем проблема не понимаю.   
Q_ASSERT(sharedPainter ? sharedPainter->isActive() : true);
« Последнее редактирование: Май 25, 2008, 20:05 от Red Devil » Записан
Red Devil
Гость
« Ответ #1 : Май 25, 2008, 20:18 »

с assert справился. Обнес {} создание обьекта и рисование и все работает почему-то работает ^_^
Код:
           {
QPainter painter(viewport());
QRect r = cursorRect();
r.setX(0);
r.setWidth(viewport()->width());
painter.fillRect(r, QBrush(QColor(230, 230, 230) ) );
}

QTextEdit::paintEvent( event );
Видимо нужно было чтобы обьекта painter не существовало при вызове paintEvent родителя.


Ну и вообще вопрос решен :
painter.setPen(Qt::DashLine);
вот и все что требовалось что сделать такую окантовку ^_^
« Последнее редактирование: Май 25, 2008, 20:22 от Red Devil » Записан
ритт
Гость
« Ответ #2 : Май 25, 2008, 20:28 »

если кутэ 4, посмотри QRubberBand
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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