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
[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:
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="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.
Ebben nincsen igazad, egy managed pointerhez nem szukseges semmilyen előfordítási (moc) 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.
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.
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 :)
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 :)
Hozzászólások
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:
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:
http://doc.trolltech.com/qq/qq15-academic.html
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.
Ebben nincsen igazad, egy managed pointerhez nem szukseges semmilyen előfordítási (moc) 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:
http://doc.trolltech.com/qq/qq15-academic.html
HTH:
Babszem.
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