Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 27.10.2010, 11:17 |
voipp, это не просто память под художника, это создание нового контекста графического устройства | |
BRE | Дата 27.10.2010, 10:24 |
А особенно памяти никакой и не выделяется. QPainter это класс-рисовальщик, который содержит методы для рисования на QPaintDevice (которыми являются всякие QImage/QPixmap и конечно же QWidget). Сам QPainter никаких тяжелых буферов не содержит. |
|
voipp | Дата 27.10.2010, 10:18 |
voipp, QPainter надо создавать там где он нужен. Т.е. в методе paintEvent. Я подумал, что зачем каждый раз выделять память под художника(QPainter).И тем более я не вижу причины ошибки!Вот что самое главное! |
|
Litkevich Yuriy | Дата 27.10.2010, 9:58 |
voipp, QPainter надо создавать там где он нужен. Т.е. в методе paintEvent. |
|
voipp | Дата 27.10.2010, 9:45 |
В данном коде я ведь в деструкторе удаляю paint.Почему всеравно вылезает ошибка QPainter::begin: Paint device returned engine == 0, type: 1 К тому же не рисуются никакие линии.Ведь деструктор вызывается перед выходом из программы! PS. Остальной код рабоатет нормально |
|
Гость_voipp_* | Дата 27.10.2010, 9:33 |
"Можно было оставить, как было, с одним условием -вернуть память в кучу" так я ведь в деструкторе удаляю painter! | |
Алексей1153 | Дата 26.10.2010, 23:25 |
voipp, да нормальный вопрос, отчего ж тупой. Можно было оставить, как было, с одним условием -вернуть память в кучу
а я написал с созданием переменной на стеке - она удалится автоматом
Читать про управление памятью в C++ . |
|
voipp | Дата 26.10.2010, 23:20 |
а можно тупой вопрос - почему именно так? какая разница? | |
Алексей1153 | Дата 26.10.2010, 23:03 |
вот так не будет
|
|
voipp | Дата 26.10.2010, 22:54 |
Но ошибка QPaintDevice: Cannot destroy paint device that is being painted всеранво осталась | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 24.4.2024, 0:11 |