Qt & C++ template

 ( stentor | 2006. január 24., kedd - 12:20 )

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A kérdést nem egészen fogtam fel, de talán attól még nem fogok a nem "ilyen" kategóriába kerülni.
Qt + KDevelop párosítással valahogy így néz ki a dolog :

[code:1:584103855c]
#include <qobject.h>

class myClass : public QObject{
Q_OBJECT
private:
public slots:
void fgv();
signals:
void event();
}

#include <valami.moc>
[/code:1:584103855c]

Az esetleges hibákért elnézést kérek, nincs előttem a fejlesztőkörnyezet...

Egyébként az elte honlapján érdemes körülnézni, értékes leírások találhatók ott.

Remélem sikerült segíteni egy kicsit, és jobb véleménnyel leszel ezek után a fórumokról és az azt látogató személyekről! Engem mindig sok hasznos információval segítettek eddig!
Üdv: S81

Megjegyzés:
Ha valaki úgy gondolja, hogy beír egy topicba, akkor előtte nézze meg az utolsó hozzászólás dátumát :oops: :roll: :lol:

[quote:fe709d3dda="stage81"]Megjegyzés:
Ha valaki úgy gondolja, hogy beír egy topicba, akkor előtte nézze meg az utolsó hozzászólás dátumát :oops: :roll: :lol:[/quote:fe709d3dda]

hm? mai az egész topik.

Ez érdekes... Én az előbb 2005 márciusát olvastam... Lehet, hogy le kell cserélnem a dioptriám? 8O :roll:

Biztosan meg lehet csinálni.

QPointer<QLabel> label = new QLabel;
label->setText("&Status:");

Ez a QT-4 QPointer osztálya. Namármost, ha a QT meg tudta csinálni, te is meg fogod tudni. Szerintem töltsd le a QT forrását és nézd meg, hogy hogyan csinálja.

QT-3 alatt ez a QGuardedPtr-nek felel meg. A referencia nullázódik, amikor törlődik az objektum, ebből kifolyólag legalább SLOT-okat használnia kell.

Nézd meg itt, hogy a TrollTech mit mond a kérdésről:
[url]http://doc.trolltech.com/qq/qq15-academic.html[/url]

HTH:
Babszem.

[quote:d9d1cf3480="Csab"]Biztosan meg lehet csinálni.

QPointer<QLabel> label = new QLabel;
label->setText("&Status:");

Ez a QT-4 QPointer osztálya. Namármost, ha a QT meg tudta csinálni, te is meg fogod tudni. Szerintem töltsd le a QT forrását és nézd meg, hogy hogyan csinálja.

QT-3 alatt ez a QGuardedPtr-nek felel meg. A referencia nullázódik, amikor törlődik az objektum, ebből kifolyólag legalább SLOT-okat használnia kell.[/quote:d9d1cf3480]
Ebben nincsen igazad, egy managed pointerhez nem szukseges semmilyen előfordítási ([i:d9d1cf3480]moc[/i:d9d1cf3480]) mágia. Nézd csak meg az std::autoptr<> osztályt.
A QGuardedPtr pedig nem a QObjectből származik, csak egy olyan private membert tartalmaz (ami maga már nem template). A QPointer forrását még nem láttam, de gondolom az is hasonló trükkel operál.

Babszem.

Elolvastam. Ezek szerint a template-es eset nem használható, csak úgy hogy a template hivatkozik egy "nem template" QObject osztályra.

Ez viszont igencsak gány kódot eredményezne, mert a template sokkal többet lát, mint a "nem template" osztály. Nagyobb gányolás, mintha template nélkül csinálnád az egészet.

Magyarul QT alatt nincs template-ezés.

még csak most néztem azóta a hup-ot, hogy kérdeztem, kellemesen csalódtam :) a hozzászólásokat meg nemsokára átolvasom figyelmesebben is.

az "ilyen" kategória meg senkire nem vonatkozik, aki válaszolt :D
szóval köszönöm :)

nah, olyat tudok csinalni, hogy pl.
egy QWidget-bol szarmaztatott , Q_OBJECT-et (sajat signal-t meg slot-ot nem tartalmazo) osztaly sablonosztaly legyen, a signal-okat meg postEvent-tel helyettesitem...
ez talan nekem eleg is lesz :)

[quote:3d498a0feb="Babszem"]Nézd meg itt, hogy a TrollTech mit mond a kérdésről:
[url]http://doc.trolltech.com/qq/qq15-academic.html[/url]

HTH:
Babszem.[/quote:3d498a0feb]

köszi a linket:) hasznos írományok vannak ebben a Qt Quarterly-ben. az observer minta eszembe se jutott...

meg lehet-e oldani azt Qt-vel, hogy sablonosztályban adjak meg signal-okat, slot-okat, magyarul : tudok-e olyan sablonosztályt csinálni, amiben szerepel a Q_OBJECT ?

ha beleteszem a Q_OBJECT-et egy sablonosztályban, akkor a fordító (még valószínüleg a moc ) nyavalyog, hogy nem tudja kezelni
a fordításkor qmake -project
qmake -o makefile
make
vót, engem az érdekelne, hogy esetleg ha "manuálisan"
(manuális = moc ize.h -o ize.moc, aztán ugye #include "ize.moc",stb...) rá lehetne-e valahogy kényszeríteni?

vagy a signal-slot mechanizmust kiváltani valami postEvent-es sz@rral?

Nagyon ritkán fordul elö, hogy fórumon kérdezzek, mert legtöbbször rossz tapasztalataim voltak: hozzá nem értök okoskodásaival szemben kellett "megvédenem" azt, hogy mit miért akarok úgy csinálni... az "ilyen" emberkéknek:
az, hogy miért kell az hosszú, b@szogatásra sincs szükségem és tényleg csak az írjon, aki tud valamit mondani vagy esetleg tud valami linket, ahol ezzel mélyebben foglalkoznak.
megj.: a guglit ismerem, de azért kérdeztem, mert ha valaki már tökölt ilyennel, akkor ugyebár leírhatja és akkor úgy gyorsabban tudok haladni...

Aki meg nem "ilyen", annak a válaszát előre is köszönöm :)

Stentor