Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перерисовка. Не всегда срабатывает 
:(
    Опции темы
Annihilator
Дата 17.1.2010, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Есть imageLabel, производный от QLabel. Он находится в ScrollArea

следующий код рисует поверх загруженной картинки полигон

Код

void RenderLabel::paintEvent(QPaintEvent* pe)
{
   QLabel::paintEvent(pe);  // рисуем картинку
    QPainter painter(this); 
    RenderPoints(&painter); // затем полигон
}

void RenderLabel::mousePressEvent(QMouseEvent* pe)
{


    if (emit !CheckForRecording())
            return;
    QPoint insideWidgetCoordinates = GetLocalCoordinates(pe);
    points.push_back(insideWidgetCoordinates);
    SinglePoint *sp = new SinglePoint();
        sp->setGeometry(QRect(insideWidgetCoordinates.x()-SinglePoint::xAxis, insideWidgetCoordinates.y()-SinglePoint::yAxis, SinglePoint::pointHeght, SinglePoint::pointWidth));
    widgetPoints.push_back(sp);
    emit RecordCoordinatesToList(insideWidgetCoordinates);
    emit AddSinglePoint(sp);
    update();
}

Проблема в том, что полигон НЕ ВСЕГДА рисуется. как сделать чтобы после нажатия мыши update() тут же все перерисовывал



Это сообщение отредактировал(а) Annihilator - 17.1.2010, 23:12


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
KADABRA
Дата 18.1.2010, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 30.8.2007

Репутация: 2
Всего: 3



Annihilator, 
Цитата(Annihilator @  17.1.2010,  23:08 Найти цитируемый пост)
Проблема в том, что полигон НЕ ВСЕГДА рисуется.

В каких случая не рисуется?

Цитата(Annihilator @  17.1.2010,  23:08 Найти цитируемый пост)
как сделать чтобы после нажатия мыши update() тут же все перерисовывал

Использовать repaint()
PM MAIL   Вверх
Annihilator
Дата 18.1.2010, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Цитата(KADABRA @  18.1.2010,  04:05 Найти цитируемый пост)
В каких случая не рисуется?

Хороший вопрос. На удачу. Хочет - рисуется, не хочет - не рисуется. Должно рисовать все по клику мыши.

Цитата(KADABRA @  18.1.2010,  04:05 Найти цитируемый пост)
Использовать repaint() 

Тоже не всегда рисует. Я вставил ее в конец mousePressEvent вместо update. Может не туда куда-нибудь надо?

А еще меня вот это настораживает

Это сообщение отредактировал(а) Annihilator - 18.1.2010, 08:34


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.2036 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.