прорисовка с paintEvent |
Здравствуйте, гость ( Вход | Регистрация )
прорисовка с paintEvent |
voipp |
24.10.2009, 16:39
Сообщение
#1
|
Участник Группа: Участник Сообщений: 116 Регистрация: 20.10.2009 Из: Msk Пользователь №: 1166 Спасибо сказали: 0 раз(а) Репутация: 0 |
как реализовать индивидуальные для сигналов прорисовки виджета?
|
|
|
BRE |
24.10.2009, 16:47
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
как реализовать индивидуальные для сигналов прорисовки виджета? Эээ... если я правильно понял о чем речь.
|
|
|
voipp |
24.10.2009, 17:08
Сообщение
#3
|
Участник Группа: Участник Сообщений: 116 Регистрация: 20.10.2009 Из: Msk Пользователь №: 1166 Спасибо сказали: 0 раз(а) Репутация: 0 |
как реализовать индивидуальные для сигналов прорисовки виджета? Эээ... если я правильно понял о чем речь.
спасибо но я вообще хотел совсем в другом классе реализовать сигналы. Проблема заключается что в этих сигналах я вызываю update() а он уже перерисовывает widget который определен в другом классе тоесть никакой информации о том что за кнопка вызввала перерисовку нет в этом то и проблема |
|
|
BRE |
24.10.2009, 17:11
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
но я вообще хотел совсем в другом классе реализовать сигналы. Проблема заключается что в этих сигналах я вызываю update() а он уже перерисовывает widget который определен в другом классе тоесть никакой информации о том что за кнопка вызввала перерисовку нет в этом то и проблема Покажи примерный код, а то по описанию не очень понятно. |
|
|
Litkevich Yuriy |
24.10.2009, 17:59
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
но я вообще хотел совсем в другом классе реализовать сигналы. реализуй сигналы там, где они нужны.Проблема заключается что в этих сигналах я вызываю update() в сигналах ты ничего не делаешь, они просто посылаются. (Т.е. с точки зрения Си++ ты не описываешь код функции-сигнала). Функцию update() ты вызываешь в слоте, как в примере, который привёл тебе BREvoipp, не цитируй сообщения целиком, цитируй только нужный фрагмент (см. справку) |
|
|
voipp |
24.10.2009, 18:53
Сообщение
#6
|
Участник Группа: Участник Сообщений: 116 Регистрация: 20.10.2009 Из: Msk Пользователь №: 1166 Спасибо сказали: 0 раз(а) Репутация: 0 |
Я создал приложение вкотором на доке 4 кнопки а в центре виджет widget для рисования
Вот что у меня получилось но выскакивает ошибка что множственное определение (multiple definition) и показывается код который преобразовал компилятор COM
curr_direct это перечисление со значениями ltft right up down |
|
|
Litkevich Yuriy |
24.10.2009, 22:01
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Первое, что бросается в глаза - это:
connect(ui->Right,SIGNAL(Clicked),this,SIGNAL(pRight())); сигнал - это функция, и форма записи у неё такая:function() т.е. со скобками painter= new QPainter(this); относительно рисовальщика уже упоминалось, что его лучше создавать в виде локальной переменной в функции paintEvent
|
|
|
voipp |
25.10.2009, 6:33
Сообщение
#8
|
Участник Группа: Участник Сообщений: 116 Регистрация: 20.10.2009 Из: Msk Пользователь №: 1166 Спасибо сказали: 0 раз(а) Репутация: 0 |
спасибо за советы. После исправлений все заработало но возникла другая проблема(про которую я забыл) - рисунок после перерисовки стирался и приходилось заново все рисовать - может есть смысл рисовать используя QCanvas может он более для этого удобен?
|
|
|
BRE |
25.10.2009, 9:41
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
спасибо за советы. После исправлений все заработало но возникла другая проблема(про которую я забыл) - рисунок после перерисовки стирался и приходилось заново все рисовать - может есть смысл рисовать используя QCanvas может он более для этого удобен? Можно рисовать на QPixmap и эту картинку выводить на виджет в paintEvent. Можно сохранять все состояния линий в списке и в paintEvent их все перерисовывать. |
|
|
Litkevich Yuriy |
25.10.2009, 11:59
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 11.12.2024, 4:07 |