Napi Qt okosság: avagy mit csináljunk, ha a rajzolt QGraphicsItemet nem lehet mozgatni 

A szituáció:

Adott a QGraphicsView aminek a mousePress, mouseRelease, és mouseMove memberjeit overrideolom.
A pressEventben létrehozok egy RockItemet, ami mozgatható, és egy QPolygont rajzol. A moveEventben, amennyiben rajzolás van ehhez az adott RockItem polygonjához fűzöm az event->pos() pontot. A releaseben pedig befejezem az adott elemet (innentől polygont nem polylinet paintel.

A probléma:
Az így letett elemek nem mozgathatóak. Amennyiben a konstruktorban hozunk létre ilyeneke pld. egy QSettingsből, akkor lehet őket mozgatni. Amennyiben mozgatjuk a legutoljára rajzolt RockItemen kívül valamelyik elemet, úgy hogy a sceneRect megváltozzon a friss elem is mozgathatóvá válik. Ha a releaseEventben a setSceneRect()-et hívok nem történik módosulás. A scene frissítésével ugyanez a helyzet.

A megoldás:
RTFM, avagy barátkozás a Qt doksival:
http://doc.trolltech.com/4.6/qgraphicss ... ethod-prop
Akinek ez nem megy annak marad a megoldás mint nekem a googlecodesearch :)
[ hozzászólás ] ( 4 megtekintés ) [ 0 trackbackek ] permalink ( 3 / 574 )
Calling all innovators - deadline 

Nos ezen is túl vagyunk.

Készítettünk egy kis órarendet Symbianra Qt-val.

Így néz ki desktopon:



És szimulátorban:



Éles screenshot nincs, majd ha lesz rá alkalom lövök.

Fel van vértezve neptun importálási lehetőséggel, amit innen merítettünk:
http://webjegyzet.hu/proj/netfun/

[ hozzászólás ] ( 4 megtekintés ) [ 0 trackbackek ] permalink ( 2.9 / 380 )
Magyarok a marson - Sebek nyalogatása 

Lassan az élet kezd visszatérni a normál kerékvágásba.

Nekálltam rendberakni a marsjárót. Találtunk a tanszéken 1:200 áttételű fém fogaskereses DC motort, a végén enkóderrel. Ez lesz belecsuberákolva a cuccba valószínűleg. Lassab lesz, de gyilkosabb.

Sorra kerültek a megpukkantott H hidak.
Az összes FET jó. A két hídmeghajtó azonban megpukkant. Az egyik látványosan:




Ádám spanom lőtte róla képet a mikroszkópban az androidos csodafonjával.


Hőléggel seperc alatt kicseréltem őket. Ami érdekes, hogy ez a látványosan ellőtt példány az egyik felső GATE felőli elektródánál robbant szét.

Csendben fejlesztgetek symbianra Qt-ben a Nokia callingallinovators versenyre. Kezd elszállni a lila köd, hogy a Qt a legjobb framework. Symbianra legalábbis terror.
A színválasztó widget 6 spinboxból (RGB HSV értékek) és egy színmegjelenítőből áll.
http://bugreports.qt.nokia.com/browse/QTBUG-5234

Táblázatot kellene megjelenítenem, lehetőleg modelből úgy, hogy néhol colspant kell alkalmaznom. A QAbstractTableModelnek van span membere ami jelenleg nem működik:
http://bugreports.qt.nokia.com/browse/QTBUG-6508

Négy nap alatt több bugot/hiányzó featuret/whatthefuckot találtam a Qt-ban mint eddig összesen.

Előkerült az két évvel ezelőtti versenyre ABB-s dobozba heftelt webkamera is. Bedugtam a laposba, Linux alatt még mindig nem megy rendesen. Írtam hát a vimicronak, adatlapért, és válaszoltak. Két éve is próbálkoztam, akkor semmi visszajelzés nem volt. Pedig most tervezett mennyiségnek csak 10-et adtam meg.

Kis kínaiakról eszembe jutott a sokcsatornás USB-s digitalizálós kártyám is, amiben Syntek STK1160 SOC csücsül. Anno az ő oldalukon is kértem adatlapot, azomban regisztráció valami malwares oldalba torkollott. Most megköszönte a regemet, így várom a visszajelzést.
http://syntekdriver.sourceforge.net/

Ja hogy legyen valami sovány vigasz is összevágtam a mutatványomat egy videóra:
http://dl.dropbox.com/u/4295670/mars2020.avi
Hát igen. Tragikus ez, hogy három év alatt ennyit sikerült felmutatnom.

Napi tanulság:
QAbstractTableView-ből készült alosztályban a rowCount és a coloumnCount 0-val kell, hogy visszatérjen, ha a parent argumentum érvényes.
[ 1 hozzászólás ] ( 23 megtekintés ) [ 0 trackbackek ] permalink ( 3 / 503 )
Napi Qt okosságok: vegyesválogatott 

1) Amikor a QTimerek szórakoznak.

Történt a marsjáróvezérlő programmal, hogy elkezdett néha lefagyni a navigáció. Némi debug után arra jutottam, hogy bizony néhány QTimer nem emittál timeOut() szignált. Hosszas szívózás után rájöttem a dolog nyitjára. A program több saját készítésű könyvtárat használ. (Képletöltő, képfeldolgozó, rovervezérlő). Ez sok szíváshoz vezet, azonban symlinkek nélkül így sikerült megoldanom a földbázis és a marsbázis közös komponenseinek kezelését. A rovervezérlő könyvtárban elkövettem azt az hibát, hogy nem QTimert használtam, hanem a QObject startTimer() és timerEvent(QTimerEvent *event) metódusait az időzítésre. Ez önnmagában nem hiba, sőt átláthatóbb kódot eredményezhet bizonyos esetekben. Azonban a killTimer(int timerid) függvényt csak ésszel szabad használni. A hiba pontos okát nem tudtam feltárni, de annyi bizonyos:

A) killTimer() -t nem hívunk meg nem megfelelően inicializált értékkel

B) killTimer() -t egy timerId-vel csak egyszer hívunk meg.


2) Amikor a windowsos build elbukik mert nem találja a LIBS+= -lsettings -L=../../libs/bin után a settings libet, holott az ott van.

A QtCreator újonnan szeret létrehozni egy shadow build könyvtárat, amiben a fordítás egy desktop nevű könyvtárban történik. Így nem
-L=../../libs/bin -el kell linkelni, hanem egyel fentebbi könyvtárba.


3) Miután sikerrel lefordítottuk a stuffot az alkamazás
QWidget: Must construct a QApplication before a QPaintDevice hibával elszáll.

Az alkalmazásunk és a libjeink azonos módban legyenek fordítva (debug vagy release)

És hogy legyen valami színes is a végére, ami unalmas, és semmitmondó mivel itthonról írok:

A marsbázis fut fostalicska OS-en is némi hekkelés árán.

BTW:
Még : 14 nap van hátra.
Az pontosan annyi mint: 336 óra.
Azaz 20160 perc

[ hozzászólás ] ( 1 megtekintés ) [ 0 trackbackek ] permalink ( 3.1 / 390 )
Setting up Qt build enviroment for AVR32 development 

Currently I have a project which is based on the Atmel's NGW100 board.
It contains an 7' LCD display with touchscreen, an AC97 soundcard, a GPRS modem, and a PIC based board for controlling relay's, and so on.
The development time to make it working should be as sort as is possible. Read more...
[ hozzászólás ] ( 88 megtekintés ) [ 0 trackbackek ] permalink ( 2.8 / 921 )

<< <Előző | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | Következő> >>

 
számláló