|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
[QT / C++ ] Virtual slot ed ereditarietà
Salve a tutti. Ho un problemone che non riesco a risolvere.
Ho un classe puramente virtuale,(alias interfaccia ): Codice PHP:
Codice PHP:
Ora, così facendo compila tutto, ma poi quando connetto lo SLOT ad un SIGNAL a runtime non riesco a trovare lo SLOT: "Object::connect: No such slot QWidget::setChoice(QString)" Pensavo che l'errore fosse che ho ho inserito la macro Q_OBJECT nelle 2 classi...ma inserendola ho l'errore: "undefined reference to vtable" Non riesco proprio a risolvere...eppure gli slot virtuali sono ammessi e si possono usare.... Cosa sto sbagliando? Grazie a chiunque si interessasse. Wing |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
Risolto -.-"
QT Creator è abbastanza fatto con i piedi evidentemente. visto che non è l aprima volta che mi capita. Anche avendogli dato rebuild-all, rifacendogli far fare il qmake dava sempre lo stesso errore. Ho cancellato a mano il makefile ed ora compila. assurdo -.-". |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per definire un custom slot/signal devi inserire la macro Q_OBJECT nel header della classe. Questo l'hai capito mi sembra.
Quando si fa una modifica di questo tipo, non solo vanno rigenerati i binari, ma anche i moc. Per fare questo da linea di comando andrebbe rieseguito qmake. Probabilmente avresti risolto il problema andando in Build->Clean All e poi Run qmake In sostanza Qt Creator non ha capito che c'era stata la modifica dell'aggiunta di Q_OBJECT. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Per fortuna con Qt 4.7 dovrebbero distribuire la nuova versione (che è anche assai ganza da vedere ![]()
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì, l'ultima non entusiasma nemmeno me.
Con la prossima ci sarà la rivoluzione di QtQuick e Qml ![]() Non oso pensare a come verrà rivoluzionata l'interfaccia grafica dei programmi, soprattutto nell'ambito mobile ![]() |
![]() |
![]() |
![]() |
#6 | ||
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
Quote:
Quote:
Cmq a titolo informativo ho notato che su ubuntu è molto più veloce...sia a compilare sia l'applicazione una volta compilata... Probabilmente dipende in primis dal fatto che il gcc è molto piu' veloce del minggw32...però che anche l'applicazione compilata, quando devo accedere al database sia molto più reattiva non me lo spiego...boh...merito di ext4? |
||
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il problema è che magari con il clean all avresti eliminato i moc file, magari il rebuild all compila solamente e non crea i moc file, ma questa è solo una supposizione.
Dipende "quanto" più reattiva ed anche "quando" è più reattiva, solo al primo accesso al db o sempre (magari è in relazione con il sistema di caching). |
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
Quote:
quando: praticamente sempre... |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
si in entrambe le parti.
Ultima modifica di Wing_Zero : 05-08-2010 alle 16:41. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:54.