Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с QPaint

32K
16 февраля 2008 года
Tchokurov
8 / / 13.01.2008
Отладочная консоль забивается сообщениями
QPaintEngine::setSystemClip: should not be changed while engine is active.
QPaintEngine::setSystemRect: should not be changed while engine is active.

Кусок кода

Код:
def paintEvent(event)
  case @drawing
  when 'formula'
   painter = Qt::Painter.new(self)
   painter.setRenderHint(Qt::Painter::Antialiasing, true)
   painter.setPen(Qt::blue)
   painter.setFont(Qt::Font.new('Arial', 12))
   painter.drawText(rect, Qt::AlignCenter, 'Hello')
   @drawing = 'none'
   return
  #------------------------
  end
 end


Что это может быть?
361
16 февраля 2008 года
Odissey_
661 / / 19.09.2006
Все очень просто. Не знаком с питоном (это же питон, правда?), но знаком с Qt. Ты создаешь painter в динамической памяти. А удалять его кто за тебя будет? =)
поэтому, когда происходит заход в данную функцию на следующем событии, он тебе сообщает что движок уже активен - что то рисует =)
Добавь там delete painter в конце функции, или что там в питоне освобождает память.
32K
16 февраля 2008 года
Tchokurov
8 / / 13.01.2008
Сделал так
 
Код:
@painter = Qt::Painter.new(self)
   @painter.setRenderHint(Qt::Painter::Antialiasing, true)
   @painter.setPen(Qt::blue)
   @painter.setFont(Qt::Font.new('Arial', 12))
   @painter.drawText(rect, Qt::AlignCenter, 'Hello')
   remove_instance_variable :@painter
   @drawing = 'none'


Ошибка таже :(

Кстати это Ruby, ну да они с питоном похожи :)
32K
16 февраля 2008 года
Tchokurov
8 / / 13.01.2008
Проблема решилась вот так
 
Код:
painter = Qt::Painter.new(self)
   painter.setRenderHint(Qt::Painter::Antialiasing, true)
   painter.setPen(Qt::blue)
   painter.setFont(Qt::Font.new('Arial', 12))
   painter.drawText(rect, Qt::AlignCenter, 'Hello')
   painter.end
   @drawing = 'none'
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог