|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
QT e.......
Ciao sto programmando su uno zaurus, e il mio primo programma serio mi sta
dando qualche problemino o meglio alla compilazione mi dice: sharp.o undefined reference to Myapp::QPaintDevice virtual table e altri errori della serie che sono propi del linker. dovrei aver sbagliato qualcosa di forma.... se notate qualcosa di strano.... ho tagliato il grosso del programma perche' penso sia un problema di forma. ci sono 2 classi la mia app e un'altra(incassi) schiacciando un pulsande della app si apre il widget incassi.... class Myincassi: public QWidget{ public: Myincassi(QWidget *parent=0,const char *name=0,int flag=0); }; class Myapp ![]() Q_OBJECT public: Myapp(QWidget *parent=0,const char *name=0); public slots: void openincassi(); }; Myincassi::Myincassi(QWidget *parent,const char *name,int flag):QWidget(parent,name){ QTabWidget *Tab=new QTabWidget(this,"Tabw"); QWidget *pag1w=new QWidget(Tab,"pag1"); pag1w->setFixedSize(236,260); Tab->addTab(pag1w,"&Acquisizione"); this->setGeometry(0,0,240,320); this->show(); } Myapp::Myapp(QWidget *parent,const char *name):QWidget(parent,name){ QVBox *box=new QVBox (this); box->resize(240,200); QPushButton *p_incassi=new QPushButton("INCASSI",box); QPushButton *p_comunicazione=new QPushButton("COMUNICAZIONE",box); QObject::connect(p_incassi,SIGNAL(clicked()),this,SLOT(openincassi())); QObject::connect(p_comunicazione,SIGNAL(clicked()),qApp,SLOT(quit())); this->setGeometry(10,50,220,160); }; void Myapp::openincassi(){ Myincassi *INCASSI_FRM=new Myincassi(0,"AA"); } int main(int argc,char **argv){ QApplication a(argc,argv); Myapp mainw; a.setMainWidget(&mainw); mainw.show(); return a.exec(); } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Sicuro che linki con le Qt?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
ho usato il tmake per creare il makefile e finora, che non ho usato il Q_OBJECT
tutto andava liscio. ho aggiunto il Q_OBJECT e un public slot e non va piu' vuoi che ti mando il Makefile? il linking avviene con -lqte -lqpe in questo modo: gcc -o sharp sharp.o -L/home/QtPalmtop/lib -lqte -lqpe dovrebbero essere le qt embedded l'errore e': sharp.0(.text+0x156c): undefined reference to 'Myapp::QPaintDevice virtual table' |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
No non conosco la programmazione con le Qt, e il "loro" sistema di compilazione mi sta un pò sulle scatole.
Potrebbe essere che le Qt embedded non hanno tutte le classi delle Qt normali. Questo problema dovresti girarlo alla Trolltech.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
sinceramente la classe qwidget e' sicuramente valida anche
per le embedded in quanto struttura base e' come se al vb mancasse il forrm, per quanto riguarda la compilazione sono del tuo stesso parere. comunque spero che qualcuno al di fuori della trolltech mi risponda vuoi perche' in italiano voui perche' non ho urgenza.... o per pigrizia. comunque potrebbe essere perche' ho sbagliato il modo di ereditare la classe? l'errore di forma e' piu' probabile oppure l'ereditazione e' corretta? questo dovrebbe essere un problema standard del c++ e non di qt. ciao. ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
ok il problema era nel sistema di compilazione di qt
![]() o meglio avendo fatto un unico file per poterlo avere sottomano dato le scarse dimensioni del display dello sharp il gcc non trovava della roba.... risoluzione... includere alla fine del file il file sharp.moc generato dallo stesso moc. oppure creare un file per ogni classe e per ogni implementazione. ciao. ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:11.