![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_Shef_* |
![]() ![]()
Сообщение
#1
|
Гости ![]() |
Здравствуйте! Есть виджет, нужно нарисовать на нем ломаную линию из векторов, по точкам, и чтобы к каждой точке подходила стрелка, ну и соответственно стереть её как нибудь если нужно... Как ето сделать, подскажите пожалуйста?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
лучше всего такие вещи делать высосокуровнево - с помощью Графического представлеиня
|
|
|
Гость_Гость_* |
![]()
Сообщение
#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 |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
я его вставляю в методы рисование на QWidget и его наследниках, в обычном случае, возможно только в событии рисования paintEvent(QPaintEvent *)то мне паписать в main.cpp чтобы он на виджете нарисовал етот текст? ничего, нужно скопировать этот пример в твой виджетОткуда он берется? ... Или ето ОСь его отправляет? да это события посылает ОСь, точнее сказать - оконный менеджерПосмотри описание void QWidget::paintEvent ( QPaintEvent * event ) [virtual protected] |
|
|
Гость_Гость_* |
![]()
Сообщение
#5
|
Гости ![]() |
Спасибо! Можете на пример ссылочку дать, где можно посмотреть, как рисовать ломаные прямые, сохраняя прежние, рисовать следующие, и ,если нужно, то удалять предыдущие?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
совсем простого примера нет, есть демки рисования с помощью "Артура":
demos\pathstroke может тебе подойдёт Но вообще Артур, достаточно низко уровневая вещь, посмотри в сторону "Графического Представления" |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
вот ещё примерчик - Рисование Диаграмм
|
|
|
Гость_Гость_* |
![]()
Сообщение
#8
|
Гости ![]() |
Спасибо, разобрался... В список ложу каждую линию, и вывожу весь лист каждый раз при вырисовке... только вот проблема и удалением линий... нужно знать, где каждая линия лежит в списке...
|
|
|
ViGOur |
![]()
Сообщение
#9
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
А зачем тебе знать какая линия и где лежит? Думаю будет достаточно и того, что ты знаешь линию по каким координатам тебе нужно удалить. А затем просто пробежаться по вектору, найти эту линию и удалить.
|
|
|
trdm |
![]()
Сообщение
#10
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
вот ещё примерчик - Рисование Диаграмм глючный пример кстати. Я сначала обрадовался, думал набросаю себе кой-чего, потом потестил пример и плюнул..
Сообщение отредактировал trdm - 21.12.2009, 1:19 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.6.2025, 14:49 |