View Full Version : [QT+Ubuntu+KDE+Kdeveloper] qualsiasi aiuto
trallallero
16-11-2007, 13:35
Come da oggetto, se c'è qualcuno esperto di QT gradirei qualsiasi aiuto, suggerimento.
Lavoro con Ubuntu ma posso usare anche KDE (grande conquista :yeah:) che ha il buon Kdeveloper, quindi la prima domanda è:
se uso il Kdeveloper posso creare applicazioni diciamo KDE free ? ovvero non dipendenti da KDE ?
La seconda: Esiste qualche buon IDE per QT ?
grazie
trallallero
16-11-2007, 13:44
a parte che si chiama KDevelop :doh:
AnonimoVeneziano
16-11-2007, 13:46
Si, puoi.
Crea un oggetto da "QMake projects" e scegli "Qt4 Application" per creare un applicazione QT4
Ciao
trallallero
16-11-2007, 13:49
Si, puoi.
Crea un oggetto da "QMake projects" e scegli "Qt4 Application" per creare un applicazione QT4
Ciao
puoi cosa ? intendi fare un'applicazione indipendente da KDE con KDevelop ?
trallallero
16-11-2007, 13:53
ok, trovato grazie.
Ho installato KDevelop su Ubuntu e funzica, ho scelto new project -> C++ -> QMake project
Da qua puoi accedere a un mucchio di documentazione sulle QT: http://doc.trolltech.com/4.3/
trallallero
16-11-2007, 15:05
Da qua puoi accedere a un mucchio di documentazione sulle QT: http://doc.trolltech.com/4.3/
forse passiamo a wxWidgets e boost libraries :muro:
che palle! il fatto è che sto in una grossa società ma in un piccolo distaccamento ad Ilmenau quindi è tutto in via di decisione.
Gli avevo detto che wxWidgets era ottimo ma no, deve decidere lui: si usa QT!
poi torna e mi dice: ho avuto un'idea! usiamo wxWidgets :nono:
vabbè grazie delle info. Se si passa a QT so dove guardare :)
AnonimoVeneziano
16-11-2007, 15:52
Beh, QT è ottima come libreria, ma se dovete fare del codice non GPL si paga ... e non poco ;)
trallallero
16-11-2007, 15:57
Beh, QT è ottima come libreria, ma se dovete fare del codice non GPL si paga ... e non poco ;)
si infatti è stato uno dei motivi per cambiare.
Ma (cosi mi è stato detto) se usi QT senza modificare il suo codice non paghi niente
AnonimoVeneziano
16-11-2007, 16:06
si infatti è stato uno dei motivi per cambiare.
Ma (cosi mi è stato detto) se usi QT senza modificare il suo codice non paghi niente
Non è così.
QT è una libreria in licenza GPL. La GPL parla chiaro, se usi codice GPL (la libreria) in un programma allora il programma deve essere rilasciato sotto licenza GPL. Ogni altro uso è una violazione della licenza.
Se vuoi fare un programma che usa un'altra licenza hai bisogno della versione commerciale . Per altra licenza si intende una qualsiasi altra licenza che non sia GPL compatibile (puoi rilasciare il tuo programma in licenza LGPL o altre licenze compatibili con la GPL).
Le wxWidgets sono differenti. Sono in licenza LGPL, questo significa che utilizzando le librerie puoi rilasciare il programma in qualsiasi licenza ti aggrada.
Ciao
trallallero
16-11-2007, 16:13
Non è così.
QT è una libreria in licenza GPL. La GPL parla chiaro, se usi codice GPL (la libreria) in un programma allora il programma deve essere rilasciato sotto licenza GPL. Ogni altro uso è una violazione della licenza.
Se vuoi fare un programma che usa un'altra licenza hai bisogno della versione commerciale . Per altra licenza si intende una qualsiasi altra licenza che non sia GPL compatibile (puoi rilasciare il tuo programma in licenza LGPL o altre licenze compatibili con la GPL).
Le wxWidgets sono differenti. Sono in licenza LGPL, questo significa che utilizzando le librerie puoi rilasciare il programma in qualsiasi licenza ti aggrada.
Ciao
ok, grazie della spiegazione. Quì Mistersotuttoio me l'ha spiegata diversamente
nuovoUtente86
16-11-2007, 19:44
per utilizzare qt su windows cosa devo scaricare esattamente.Lo scopo è ottenere un ambiente di sviluppo grafico tipo turbo o vc++ che mi consenta di compilare ed ottenere un eseguibile.
per utilizzare qt su windows cosa devo scaricare esattamente.Lo scopo è ottenere un ambiente di sviluppo grafico tipo turbo o vc++ che mi consenta di compilare ed ottenere un eseguibile.
Qui c'è la versione open source per windows, osx e linux: http://trolltech.com/developer/downloads/qt
Se hai già visual studio puoi usare quello per programmare. Qt si integrano con vs così puoi usare l'editor grafico.
ciao ;)
nuovoUtente86
16-11-2007, 21:57
Ho scaricato.
Ho creato la form con qt designer ma non capisco ora come creare e mettere in comunicazione il codce che mi serve.Se volessi utilizzare c-vc+++ con QT cosa devo fare?
Le wxWidgets sono differenti. Sono in licenza LGPL, questo significa che utilizzando le librerie puoi rilasciare il programma in qualsiasi licenza ti aggrada
Mi sono sempre chiesto: ma sei incapsulo una libreria GPL in una LGPL e poi uso la libreria LGPL nel mio programma closed ?
trallallero
17-11-2007, 14:46
Mi sono sempre chiesto: ma sei incapsulo una libreria GPL in una LGPL e poi uso la libreria LGPL nel mio programma closed ?
ma la LGPL cosè ? GPL Light ? :stordita:
AnonimoVeneziano
17-11-2007, 15:02
Mi sono sempre chiesto: ma sei incapsulo una libreria GPL in una LGPL e poi uso la libreria LGPL nel mio programma closed ?
Si, puoi farlo.
Le KDELibs sono così ad esempio.
Però si può fare solo dynamic linking, lo static linking è vietato
Ciao
AnonimoVeneziano
17-11-2007, 15:02
ma la LGPL cosè ? GPL Light ? :stordita:
Lesser GPL : http://www.gnu.org/licenses/lgpl.html (da notare che è una licenza sconsigliata dalla FSF :p)
trallallero
17-11-2007, 15:09
Lesser GPL : http://www.gnu.org/licenses/lgpl.html (da notare che è una licenza sconsigliata dalla FSF :p)
non ho letto tutto ma già questo mi sembra confermare ciò che dice Mistersotuttoio:
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
in pratica se vuoi usi QT così com'è, altrimenti, se vuoi fare modifiche, lo compri.
QT non è LGPL, ma GPL ;)
Anonimo: interessante questa cosa del linking dinamico...
trallallero
20-11-2007, 13:33
passeremo a wxWidgets + boost ma per adesso devo finire una cosa al volo e devo usare QT.
Ho fatto una matrice dinamica di pulsanti e adesso dovrei assegnare un evento
clicked() ad ognuno. Ovviamente un evento solo con un ID per riconoscere il chiamante. L'ho fatto con wxWidgets ed è una scemenza, con QT non ne esco fuori.
Sto usando questo metodo per collegare i pulsanti all'evento:
connect(&qButtons[n][i], SIGNAL(clicked()), this, SLOT(on_MatrixBtnClicked()) );
ma non capisco come dirgli che c'è un ID. L'evento clicked() del pulsante non lo permette.
funziona, entra in questa funzione quando premo uno qualsiasi dei pulsanti
void MatrixWindow::on_MatrixBtnClicked()
{
puts( __PRETTY_FUNCTION__ );
}
ma non so veramente come fare a capire chi l'ha chiamata
AnonimoVeneziano
20-11-2007, 14:47
passeremo a wxWidgets + boost ma per adesso devo finire una cosa al volo e devo usare QT.
Ho fatto una matrice dinamica di pulsanti e adesso dovrei assegnare un evento
clicked() ad ognuno. Ovviamente un evento solo con un ID per riconoscere il chiamante. L'ho fatto con wxWidgets ed è una scemenza, con QT non ne esco fuori.
Sto usando questo metodo per collegare i pulsanti all'evento:
connect(&qButtons[n][i], SIGNAL(clicked()), this, SLOT(on_MatrixBtnClicked()) );
ma non capisco come dirgli che c'è un ID. L'evento clicked() del pulsante non lo permette.
funziona, entra in questa funzione quando premo uno qualsiasi dei pulsanti
void MatrixWindow::on_MatrixBtnClicked()
{
puts( __PRETTY_FUNCTION__ );
}
ma non so veramente come fare a capire chi l'ha chiamata
Non ho capito cosa non ti va.
Forse che non funziona la puts?
Ciao
trallallero
20-11-2007, 14:52
scusa ma sono sveglio dalle 4 ::coffee:
mi sa che ho spiegato alla verga di segugio
diciamo che comunque ho risolto ma non mi piace ... anche se mi sembra non ci siano vie alternative migliori ed è un punto a sfavore per QT.
Spiego:
Ho una matrice di pulsanti che chiamano UNA funzione quando vengono cliccati.
In questa funzione voglio intercettare l'ID del pulsante per sapere chi è il chiamante. In wxWidgets è semplicissimo, in QT pare non sia possibile se non taroccando la cosa.
Se vuoi spiego come ho risolto
EDIT: la puts è solo per vedere se entra nella funzione ;)
AnonimoVeneziano
20-11-2007, 17:58
Non so, provo a sparare a caso :p
Hai subclassato QPushButton facendo una classe che implementa un segnale "clickedID(int)"
Hai fatto l'override di "void mouseReleaseButton(QMouseEvent* event)" e l'hai definita :
void MioButtonID::mouseReleaseButton(QMouseEvent* event) {
emit clickedID(id);
}
(posto che "id" sia una variabile "int" della classe MioButtonID)
e poi nella classe che deve ricevere il segnale :
connect(button[i][j], SIGNAL(clickedID(int)), this, SLOT(matrixBtnClicked(int)));
????
Questo è quello che avrei fatto io così di a prima vista
Ciao
trallallero
21-11-2007, 08:34
Non so, provo a sparare a caso :p
Hai subclassato QPushButton facendo una classe che implementa un segnale "clickedID(int)"
Hai fatto l'override di "void mouseReleaseButton(QMouseEvent* event)" e l'hai definita :
void MioButtonID::mouseReleaseButton(QMouseEvent* event) {
emit clickedID(id);
}
(posto che "id" sia una variabile "int" della classe MioButtonID)
e poi nella classe che deve ricevere il segnale :
connect(button[i][j], SIGNAL(clickedID(int)), this, SLOT(matrixBtnClicked(int)));
????
Questo è quello che avrei fatto io così di a prima vista
Ciao
mitico!!! più o meno ciò che ho fatto :D
Però mi sembra così strano dover fare una mandrakata del genere. Un sistema così grosso come QT che non prevede un evento con ID :boh:
mitico!!! più o meno ciò che ho fatto :D
Però mi sembra così strano dover fare una mandrakata del genere. Un sistema così grosso come QT che non prevede un evento con ID :boh:
certo che no! :D
avresti dovuto usare QButtonGroup
http://doc.trolltech.com/4.3/qbuttongroup.html
trallallero
21-11-2007, 10:01
certo che no! :D
avresti dovuto usare QButtonGroup
http://doc.trolltech.com/4.3/qbuttongroup.html
ma guarda che ho usato QButtonGroup e ho dovuto fare una nuova classe per l'ID
perchè l'evento clicked è "clicked()" (senza parametri)
se poi sai come farlo senza quel giro lungo sono tutt'orecchi :D
ma guarda che ho usato QButtonGroup e ho dovuto fare una nuova classe per l'ID
perchè l'evento clicked è "clicked()" (senza parametri)
se poi sai come farlo senza quel giro lungo sono tutt'orecchi :D
basta dare un'occhiata ai segnali definiti in QButtonGroup :p
void QButtonGroup::buttonClicked ( int id )
comunque io userei QList al posto dell'array (a meno che non stiamo parlando di un'applicazione in cui le prestazioni sono critiche ma non mi sembra il caso)
trallallero
21-11-2007, 10:28
basta dare un'occhiata ai segnali definiti in QButtonGroup :p
void QButtonGroup::buttonClicked ( int id )
comunque io userei QList al posto dell'array (a meno che non stiamo parlando di un'applicazione in cui le prestazioni sono critiche ma non mi sembra il caso)
ok, ho capito. Ieri non ho visto il segnale void buttonClicked ( int id ), ho cercato in internet ed ho trovato qualche pagina evidentemente vecchia che diceva appunto che mancava questo tipo di segnale.
Infatti dice: This function was introduced in Qt 4.2.
vabbè risolto, grazie. 2 ore di lavoro buttate nel cesso :D
fai riferimento alla documentazione di trolltech che è ottima
trovi tutto qui http://doc.trolltech.com/4.3/index.html
trallallero
21-11-2007, 10:36
fai riferimento alla documentazione di trolltech che è ottima
trovi tutto qui http://doc.trolltech.com/4.3/index.html
si grazie e non ho scusanti se non che ieri mi son svegliato (mi ha sveglito mia figlia) alle 4, perchè nei miei bookmarks di firefox ho questo:
http://doc.trolltech.com/4.3/classes.html
trallallero
21-11-2007, 10:41
:asd: buon lavoro!
grazie ma con QT ho già finito :D
Adesso abbandoniamo QT e passiamo a wxWidgets ma il problema è che devo convertire tutte le QList, QString, QPair, QCazz :muro:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.