Russian Qt Forum
Ноябрь 12, 2024, 04:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Безобидное (?) присваивание  (Прочитано 6032 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июнь 21, 2014, 15:39 »

Мелочь, но все-таки, сегодня получил за такое
Код
C++ (Qt)
QImage img1, img2;
...
img1 = img2;
Оказывается есть ситуации где это может оказаться ошибкой  Улыбающийся
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Июнь 21, 2014, 17:54 »

Cкандалы, интриги, расседования ...
Хотелось бы конкретики и разоблачений  Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июнь 21, 2014, 18:09 »

Cкандалы, интриги, расседования ...
Хотелось бы конкретики и разоблачений  Улыбающийся
Це ж нецiкаво Улыбающийся Когда ответ оглашен - реакция "ну конечно", "разумеется", "а как могло быть иначе"? и "важно понимать что...".

Ладно, на всякий случай сообщаю что оба имеджа корректны и даже имеют одинаковый формат и размеры.
« Последнее редактирование: Июнь 21, 2014, 18:15 от Igors » Записан
Bepec
Гость
« Ответ #3 : Июнь 21, 2014, 18:18 »

Это не в общие вопросы. Это в раздел "Что, Где, Когда" надо.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #4 : Июнь 21, 2014, 18:32 »

Це ж нецiкаво Улыбающийся Когда ответ оглашен - реакция "ну конечно", "разумеется", "а как могло быть иначе"? и "важно понимать что...".
Думаю будет как всегда: дело будет в коде, который вы "забыли" нам привести, что бы мы не догадались. Улыбающийся
Или это весь код? Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #5 : Июнь 21, 2014, 18:44 »

Цитировать
Assigns a shallow copy of the given image to this image and returns a reference to this image.
в этом все дело?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Июнь 21, 2014, 19:13 »

Это не в общие вопросы. Это в раздел "Что, Где, Когда" надо.
А нефиг умничать зная "правельный ответ"  Улыбающийся

Цитировать
Assigns a shallow copy of the given image to this image and returns a reference to this image.
в этом все дело?
Да, но само по себе не криминал, в какой ситуации за это можно получить по интерфейсу?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #7 : Июнь 21, 2014, 20:06 »

вероятно img1 живет дольше img2, и img2 хранит поверхностную копию данных, которые уничтожаются в его cleanup function
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Июнь 22, 2014, 11:21 »

Так что, рассказать и перейдем к фазе "ах как это очевидно" - или будут еще попытки?  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Июнь 22, 2014, 12:27 »

Так что, рассказать и перейдем к фазе "ах как это очевидно" - или будут еще попытки?  Улыбающийся
Если для вас это важно - рассказывайте, думаю врядли кто-то догадается написать то же, что и вы, в этом месте. Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Июнь 23, 2014, 09:49 »

Достаточно одной таблетки
Код
C++ (Qt)
QPainter painter(&img1);
img1 = img2;
 
С последующим крахом painter'а
Записан
Bepec
Гость
« Ответ #11 : Июнь 23, 2014, 11:20 »

Как бы логично. И это проблема не QImage а QPainter.
Холст на лету поменять не так легко.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.086 секунд. Запросов: 23.