crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как нарисовать ломаную векторную линию?
Гость_Shef_*
сообщение 18.12.2009, 8:31
Сообщение #1





Гости








    


Здравствуйте! Есть виджет, нужно нарисовать на нем ломаную линию из векторов, по точкам, и чтобы к каждой точке подходила стрелка, ну и соответственно стереть её как нибудь если нужно... Как ето сделать, подскажите пожалуйста?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.12.2009, 10:57
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


лучше всего такие вещи делать высосокуровнево - с помощью Графического представлеиня
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 20.12.2009, 9:44
Сообщение #3





Гости








    


привеодится такой исходный код в справке по Qpainter:

void SimpleExampleWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(Qt::blue);
painter.setFont(QFont("Arial", 30));
painter.drawText(rect(), Qt::AlignCenter, "Qt");
}

я его вставляю в методы одного из виджетов, описываю в заголовочном файле... что мне паписать в main.cpp чтобы он на виджете нарисовал етот текст? как вообще применяется QPaintEvent в етом методе? Откуда он берется? Что он представляет? Или ето ОСь его отправляет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.12.2009, 13:04
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Гость_* @ 20.12.2009, 12:44) *
я его вставляю в методы
рисование на QWidget и его наследниках, в обычном случае, возможно только в событии рисования paintEvent(QPaintEvent *)

Цитата(Гость_Гость_* @ 20.12.2009, 12:44) *
то мне паписать в main.cpp чтобы он на виджете нарисовал етот текст?
ничего, нужно скопировать этот пример в твой виджет

Цитата(Гость_Гость_* @ 20.12.2009, 12:44) *
Откуда он берется? ... Или ето ОСь его отправляет?
да это события посылает ОСь, точнее сказать - оконный менеджер

Посмотри описание void QWidget::paintEvent ( QPaintEvent * event ) [virtual protected]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 20.12.2009, 13:51
Сообщение #5





Гости








    


Спасибо! Можете на пример ссылочку дать, где можно посмотреть, как рисовать ломаные прямые, сохраняя прежние, рисовать следующие, и ,если нужно, то удалять предыдущие?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.12.2009, 15:35
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


совсем простого примера нет, есть демки рисования с помощью "Артура":
demos\pathstroke может тебе подойдёт

Но вообще Артур, достаточно низко уровневая вещь, посмотри в сторону "Графического Представления"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.12.2009, 21:47
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


вот ещё примерчик - Рисование Диаграмм
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 20.12.2009, 23:16
Сообщение #8





Гости








    


Спасибо, разобрался... В список ложу каждую линию, и вывожу весь лист каждый раз при вырисовке... только вот проблема и удалением линий... нужно знать, где каждая линия лежит в списке...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 20.12.2009, 23:25
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


А зачем тебе знать какая линия и где лежит? Думаю будет достаточно и того, что ты знаешь линию по каким координатам тебе нужно удалить. А затем просто пробежаться по вектору, найти эту линию и удалить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 21.12.2009, 1:10
Сообщение #10


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Цитата(Litkevich Yuriy @ 20.12.2009, 21:47) *
вот ещё примерчик - Рисование Диаграмм
глючный пример кстати. Я сначала обрадовался, думал набросаю себе кой-чего, потом потестил пример и плюнул..

Сообщение отредактировал trdm - 21.12.2009, 1:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2020, 5:03