![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
narik1985 |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2009 Пользователь №: 681 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
доброй ночи всем.
При запуске выдает: QPainter::begin: Widget painting can only begin as a result of a paintEvent вопросы: почему если я вызываю в программе событие Paint он не рисует? а если программа сама генерирует событие то выводится все нормально? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
возможно это из-за того, что ты пытешся послать событие до запуска цикла обработки события (т.е. до app.exec())
|
|
|
narik1985 |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2009 Пользователь №: 681 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
возможно это из-за того, что ты пытешся послать событие до запуска цикла обработки события (т.е. до app.exec()) пробывал поднимать app.exec() на не сколько строчек вверх, код создания события выполняется только после закрытия окна, я что-то не так делаю? и еще вопрос, в класс CodeEdit добавил функию keyPressEvent(QKeyEvent)
Как я понимаю при нажатии кнопки клавиатуры, должно вызываться событие Paint и выполнятся вызов функции paintEvent, но прорисовки не выполняется, выводит все то же самое сообщение QPainter::begin: Widget painting can only begin as a result of a paintEvent
Причина редактирования: используй тэг code
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
пробывал поднимать app.exec() на не сколько строчек вверх, это без смысленно.т.к. приложение в принципе будет выполнятся в это функции, т.е. то что после нёё будет выполнено, когда будет завершаться приложение. Лучше из main'а вообще убери посылку сообщений. Как я понимаю при нажатии кнопки клавиатуры, должно вызываться событие Paint и выполнятся вызов функции paintEvent, но прорисовки не выполняется, выводит все то же самое сообщение а при изменении размера виджета, рисование происходит?
|
|
|
narik1985 |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2009 Пользователь №: 681 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
при изменении размера происходит, при перетаскивании нет
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
события посылать я не пробовал, незнаю точно как это делается.
Но для проверки события кнопок (KeyPressEvent), можно вместо посылки сообщения (sendEvent) вызвать метод paint() |
|
|
igor_bogomolov |
![]()
Сообщение
#7
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
narik1985 |
![]()
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2009 Пользователь №: 681 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
события посылать я не пробовал, незнаю точно как это делается. Но для проверки события кнопок (KeyPressEvent), можно вместо посылки сообщения (sendEvent) вызвать метод paint() Я использую qDebug() с выводом сообщения для каждого события, они на экран выводятся(то есть при нажатии кнопки выводит сообщение о нажатой кнопке, а потом сообщение о прорисовке) Как использовать метод paint() не подскажешь? С Update() все получается, но в чем именно я не прав? |
|
|
igor_bogomolov |
![]()
Сообщение
#9
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
narik1985 |
![]()
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2009 Пользователь №: 681 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
С Update() все получается, но в чем именно я не прав? Про что вопрос? Как сэмулировать событие рисования?
Не вопрос в другом, почем когда я событие из события вызываю, то он не отрисовывает, в то время когда приложение само вызывает, то отрисовка проходит, что я конкретно не правильно делаю... (как мне кажется работать же должно) |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 5:45 |