QT a velikost widgetu (okna)
March 5, 2007 on 11:53 pm | In Poznámečky |QT si nové okno (widget) otvírá kde se mu zachce. Bori mě požádál, abych to nějak ve své ročníkovce opravil. Hned první zábava přišla při hledání metody, která pohyb okna obstarává. Totiž, věděl jsem o existenci metody pos(), která vrací pozici widgetu (buď okna, nebo relativně vůčí mateřskému widgetu), takže jsem logicky hledal metody jako setPos(), setPosition() či position(). Blbě, metoda pro pohyb se jmenuje move() (jak logické, že? ).
Ale teď ke smyslu poznámky, při pozicování child (záměrně nepřekládáno) okna do prostřed aplikace jsem narazil na problém. Výpočet je něco ve smyslu: Materske.pos().width() + Materske.width() / 2 + Child.width() / 2. Jenže nové okno bylo všude možne jen ne uprostřed. QT totiž nastavuje velikost okna až v okamžiku, kdy se zobrazuje (metoda show()), takže pohyb okna musí být až po jeho zobrazení. Dobré vědět
Ještě poznámečka k praktičnosti: v linuxu nejsem schopen postřehnout, že se okno vytvořilo a až poté posunulo (grafika stíhá vykreslovat dostatečně rychle ať si obsluha ničeho nevšimne). Windows ve vmware serveru už stihnou zobrazit i obrys původního okna. Je to nepěkné, ale tak doufám, že v normalních Windows si toho nikdo nevšimne, přeci jen rychlost vykreslování je ve vmware známým problémem…
2 Comments »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
Jaký máš důvod nepřekládat Child jako Potomek?
Comment by Martin Křížek — 2007-03-05 #
No protoze me nenapadlo slovo “potomek”
Jsem tam puvodne mel “detske” okno, coz znelo strasne blbe… Dik za tip
Comment by jarcec — 2007-03-05 #