naucse.python.cz icon indicating copy to clipboard operation
naucse.python.cz copied to clipboard

Zmínit něco o verzích PyQT v materiálech na pokročilý Python

Open konekohana opened this issue 6 years ago • 1 comments

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. :)

konekohana avatar Jan 01 '20 23:01 konekohana

Díky za report.

Možná (ale možná ne) souvisí s https://github.com/cvut/MI-PYT/issues/57 - především je tam určitý pattern.

hroncok avatar Jan 02 '20 08:01 hroncok