Название: QGraphicsScene и большой png-шный файл с прозрачность. Отправлено: Smogg от Февраль 24, 2016, 22:42 Может кто сталкивался... Или намекнет, куда копать или как вывернутся и этот баг обойти стороной.
Когда добавляю большую картинку с целиком прозрачную, но с редкими черными пикселями, то при ПЕРВОЙ попытке ручного скролла, т.е. при dragMode == ScrollHandDrag прога уходит в глубокий завис. Но, что интересно, таки возвращается. После этого первого зависания картинку можно весьма бодро таскать и мышкой, как и положено. При этом, скроллбары работают прекрасно. Скроллбарами можно двигать всегда, а мышкой - лишь после зависа.... При чем "большевитость" картинки весьма условная - 1700х1000. Примерно такая: (http://snorgg.ru/img/hhr.png) Название: Re: QGraphicsScene и большой png-шный файл с прозрачность. Отправлено: Swa от Февраль 25, 2016, 12:12 Не испытывал тормозов при работе с прозрачными картинками.
Пройдитесь по своему коду отладчиком, найдите место где зависает. Или профайлером. Гадать можно бесконечно. Название: Re: QGraphicsScene и большой png-шный файл с прозрачность. Отправлено: Smogg от Февраль 25, 2016, 12:51 Нечего в коде отлаживать) Минимальная формочка со сценой, кнопкой и одиноким обработчиком:
Код: void BigQGraphicsScene::on_pushButton_clicked() Хотя и заявляется, что scene()->setItemIndexMethod(QGraphicsScene::NoIndex) делает отмену индексирования... Но видимо я не понимаю, что под этим термином "индексирование" здесь имеется ввиду. Завис же стартует при первом клике в сцену. Потом отвисает обратно и нормально бегает. Название: Re: QGraphicsScene и большой png-шный файл с прозрачность. Отправлено: qate от Февраль 26, 2016, 10:38 а без прозрачности тормозов нет ? (код не запускал)
Название: Re: QGraphicsScene и большой png-шный файл с прозрачность. Отправлено: Igors от Февраль 26, 2016, 11:02 Завис же стартует при первом клике в сцену. Потом отвисает обратно и нормально бегает. После клика переключитесь в отладчик и там нажмите "останов", дальше смотрите стек. Если зависон хороший, времени нажать хватит Название: Re: QGraphicsScene и большой png-шный файл с прозрачность. Отправлено: Smogg от Февраль 27, 2016, 04:24 Тормоза не в моем коде, а где-то в кишка QtWidget.dll. С прозрачностью начинается расчет, какие пиксели относятся к итему, а какие нет, чтоб селект обрабатывать, ведь через прозрачные места протыкивается, а через полупрозрачные - уже нет. Я так понял. Потому что при добавлении чуть-чуть альфы, картинка хоть и остается для юзера прозрачной, но Qt'y она становится большим прямоугольником, что обрабатывается мгновенно.
Кароч, отказался от отдельного итема с границами) Все равно показ границ объектов без самих обектов смысла не имеет. |