-
Notifications
You must be signed in to change notification settings - Fork 119
Description
Při replikaci postupu ze cvičení na PyQT jsem se setkal se zajímavým problémem: u všech tiles vykreslovaných metodou QSvgRenderer.render byla špatně pozice, všechny jako by byly posunuté na souřadnice x/2, y/2 (pokud jsem je chtěl vykreslit na souřadnicích x, y). Zejména to bylo vidět, když jsem zkombinoval dva kroky cvičení dohromady: nechal jsem starou mapu zobrazovanou pomocí QPainter.fillRect, a nad to jsem vykreslil SVG verzi. Správně by SVG grass tile měla kompletně překrýt všechny barvy, ale to se nestalo, vše vykreslované z SVG bylo posunuté směrem do levého horního rohu. Po nějakém debugování se mi podařilo přijít na to, že problém pocházel někde z nesedících verzí Qt a PyQT: na mém systému jsem měl Qt verze 5.13.2, ale PyQT na pypi bylo již ve verzi 5.14. V momentě, kdy jsem explicitně vynutil instalaci PyQt5==5.13.2
, tak vše začalo fungovat, a se zbytkem cvičení již nebyl problém.
Bohužel se mi nepodařilo odhalit přesnou příčinu problému, s Qt nemám prakticky žádné zkušenosti, při debugování jsem dost tápal, a po odhalení problému s verzemi se mi již nechtělo tomu dávat víc času. Napadlo mě ale alespoň, že by do materiálů bylo vhodné přidat nějakou zmínku o potenciálních problémech plynoucích z nesedících verzí. Pokud se někomu v budoucnu při tomto cviku budou dít nějaké těžko vysvětlitelné problémy, alespoň je nějaká šance, že si tohle uvědomí dřív a nebude muset problém nijak dlouho hledat. :)