Imparare C++ e QT, oppure C e QT ?

Ho già appreso un pò del linguaggio C. Ora vorrei aggiungere la parte grafica per un input/output gradevole anche alla vista.
Però prima di intraprendere un nuovo viaggio d’apprendimento, vorrei decidermi se proseguire col “C”, rivolto al vecchio stile della programmazione procedurale o se cambiare strada e pensare al “C++”, rivolto alla programmazione ad oggetti.
Mi occorrerebbe un consiglio nato dall’esperienza.

Se vuoi usare la libreria Qt, devi per forza usare il C++. Quello che hai imparato col C rimane per la maggior parte valido, anche se ci sono differenze: l’uso di new e delete per l’allocazione/deallocazione dei puntatori al posto di malloc/mfree, eccetera. Ti dovresti procurare un buon libro che ti spieghi le fondamenta del C++, come è il K&R per il C, e leggerti con molta attenzione tutta la documentazione e gli esempi forniti su questo framework, anche on-line. Ambiente di sviluppo? Principalmente Qt Creator o KDevelop. Installati Qt Assistant, Qt Linguist e Qt Designer, servono. E poi pazienza, calma. Anche gli errori facendo un piccolo programma aiutano.

Grazie. Ora ho le idee un pò più chiare. Per i libri, in italiano, sarei orientato per “PROGRAMMAZIONE C++ MODERNA” e “Qt 5 Quanto Basta”. Penso che il compito apparentemente più difficile sia combinare l’interfaccia grafica col linguaggio, perchè fino ad ora li ho visti sempre riuniti in un unico ambiente (vedi Gambas). Comunque, sono sicuro che una volta imparata la tecnica, poi sarà molto meno complicato.
Prima di procedere alle installazioni che mi hai indicato, vorrei leggere il libro sul QT, anche per seguire gli esempi che vi vengono riportati, mentre posso cominciare subito ad esercitarmi sul C++.
Conosci i libri che ho citato sopra?

Quei libri non li conosco, sono praticamente un autodidatta per quanto riguarda Qt, anche se ho avuto precedentemente delle esperienze usando Owl sotto Turbo C++ e VCL con C++ Builder per Microsoft Windows. Per costruire l’interfaccia grafica sotto Qt puoi usare Qt Designer.

Ho capito. Per l’installazione di Installati Qt Assistant, Qt Linguist e Qt Designer, devo esguire 3 installazioni diverse o lo posso ottenerle installando direttamente Qt Creator, con “dnf install qtcreator” ?

Basta che tu dia da root il comando:

dnf install qt-creator qt-assistant qt5-designer

oppure li selezioni e li installi tramite Apper. Questi sono solo parte dei tools necessari. Vanno installati anche qmake, cmake, qbs, gcc e tutti i files delle librerie qt* con estensione -devel. Per esempio se hai installato già KDE Plasma sono installate di base anche le librerie Qt. Ecco un esempio: se è presente la libreria

qt5-qtconfiguration

devi installare la libreria di sviluppo

qt5-qtconfiguration-devel

Tieni conto che puoi aggiungere altri files al comando dnf e che alcune verranno risolte in automatico.

Non, non ho KDE.
Grazie per la dritta datami.

Di nulla. Intanto ti dò altri aiuti. Al sito Qt Centre Forum ( http://www.qtcentre.org/content/ ) puoi trovare informazioni in inglese. In italiano trovi Qt Forum ( https://forum.qt.io/topic/2465/benvenuto-nel-forum-italiano-di-qt) e a questo indirizzo trovi altri aiuti ( http://codersitalia.altervista.org/imparare-le-librerie-qt-qml-guide-italiano/). Ulteriori modelli di applicazioni per Qt e KDE sono ottenibili installando KAppTemplate. Un consiglio: se vuoi installare Qt5 in maniera grafica usi Apper, dai come stringa di ricerca “qt5” e Invio. Selezioni i pacchetti che ti interessano e fai installare tutto in automatico.

[quote=d68qdq8dq]Basta che tu dia da root il comando:

dnf install qt-creator qt-assistant qt5-designer

Tieni conto che puoi aggiungere altri files al comando dnf e che alcune verranno risolte in automatico.[/quote]

Oggi mi sono buttato ad installare solo i pacchetti riportati sopra che mi hai suggerito. Ho visto durante l’installazione che sono state prese in carico anche delle dipendenze. Sembra che la versione installata è la Qt5.
Ptrima ti procedere con gli altri tuoi suggerimenti, vorrei farti una domanda. L’ambiente “designer” è utilizzabile fuori dal C++ o devo richiamarlo tramite codice “include” da C++?

Lo so, sono proprio mentalmente inattivo, ma, dopo aver capito, recupererò.

Qt Designer e’ un tool per sviluppare interfacce grafiche che ti permette di utilizzare e customizzare widget predefiniti.

Lo scopo e’ quello di permettere a chi non ha grosse conoscenze di programmazione di sviluppare elementi grafici, dunque non devi importare alcuna libreria nel tuo codice C++ perche’ non si tratta di programmare linee di codice (sebbene qualche volte sia necessario fare qualche ritocco). Qt Creator e’ invece l’ambiente di sviluppo per Qt che potrebbe essere utile per i tuoi scopi.

Purtoppo le guide in italiano sono molto antiquate e si riferiscono spesso a versioni precedenti di Qt. Non hai la possibilita’ di dare uno sguardo ai manuali in inglese?

N.

[quote=flogger]Qt
Purtoppo le guide in italiano sono molto antiquate e si riferiscono spesso a versioni precedenti di Qt. Non hai la possibilita’ di dare uno sguardo ai manuali in inglese?
[/quote]

Si posso benissimo, ma leggere dall’inglese è sempre stato per me molto faticoso, anche se, nel passato l’ho dovuto fare, per lavoro, visto che la programmazione ha swempre difettato nella trduzione dei testi originali.
A parte la mia inglesalgia, se ho capito bene, posso aprire il Qt creator e cominciare a costruire qualche form di prova

Ho guardato i siti che mi hai indicato e ti ringrazio infinitamente, perchè li ho trovati molto utili, soprattutto il Qt forum, sezione italiana.

Il tuo ultimo post ha qualche errore d’ortografia… Ritornando a Qt, incomincia dalle cose semplici e usa gli esempi come basi per i tuoi programmi.

Dopo tanti generosi suggerimenti ho un pò di idee disordinate che frullano nel mio cervello.
Riepiloghiamo:
Io uso fedora 26 con gnome.
Ho installato qt-creator qt-assistant qt5-designer.
Ho eseguito un controllo sula directory /usr/share ed ho trovato quanto segue:

root@localhost piero]# ls /usr/share/qt5
qtlogging.ini  translations  wrappers
[root@localhost piero]# ls /usr/share/qt*
/usr/share/qt4:
translations

/usr/share/qt5:
qtlogging.ini  translations  wrappers

/usr/share/qtcreator:
cplusplus      generic-highlighter  qml                    schemes    themes
debugger       glsl                 qmldesigner            snippets
externaltools  modeleditor          qmlicons               styles
fonts          qbs                  qml-type-descriptions  templates

Nella directory /usr/share/qt5 manca la libreria qt5-qtconfiguration, mentre ci sono:

[root@localhost piero]# ls /usr/share/qt5/wrappers
qmake  qmake-qt5

mi sembra che manchino anche qt-Assistent e qt-linguist.

Tutto quanto ottenuto con le installazioni eseguite mi sembra una miscellania di oggetti disconnessi, non pronti all’uso.

A questo punto non capisco cosa vuoi dire col suggerimento citato all’inizio di questo post. Vuoi dire che ancora non ho niente per avviare un ide di Qt5?

A quanto pare quando hai installato Qt Creator e tutto il resto dnf o chi per lui, non sò che cosa hai usato per l’installazione, non ha trovato necessario installarlo perchè inutile all’uso del IDE. Ti tocca installarlo manualmente. Ricordati che Qt 5 è molto modulare. Qt Assistant e Qt Linguist li dovresti trovare sotto /bin --> /usr/bin nei file assistant-qt5 e linguist-qt5.

ma se vuoi sviluppare app per KDE perché non installi KDE?
Considera che è uscita fedora 28 e la 26 tra un mesetto sarà EOL (cioè non più mantenuta), potresti approfittarne per installare la spin con KDE, avresti sempre una fedora

[quote=lablinux]ma se vuoi sviluppare app per KDE perché non installi KDE?
Considera che è uscita fedora 28 e la 26 tra un mesetto sarà EOL (cioè non più mantenuta), potresti approfittarne per installare la spin con KDE, avresti sempre una fedora[/quote]
Grazie lablinux, ma io non conosco KDE e non vorrei cominciare ora ad intraprendere percorsi in autostrade nuove. Perciò va benissimo Gnome.

Il mio scopo oggi è quello di programmare i miei prossimi applicativi, in C++, abbellendoli con gli effetti grafici delle librerie Qt5. Tutto qui.

La prima cosa da fare, a parte lo studio di codesto ambiente, per il quale mi sto attrezzando, è riuscire ad installare Qt5 con tutte le sue dipendenze e cominciare a disegnare la prima Form con pulsanti, caselle, frame, … per prendere confidenza con gli strumenti disponibili. da richiamare poi dentro la procedura C++ che dovrà utilizzarli.

Nelle mie prove d’approccio ho trovato un’indicazione https://translate.google.it/translate?hl=it&sl=en&u=https://www.quora.com/How-can-I-install-Qt-5-in-Fedora-Linux&prev=search/,
però non ho trovato nessuna versione recente di Qt e quindi non ho scaricato niente.

Stando così le cose, l’unica strada da seguire per acquisire consapevolezza ed esperienza è sicurammente quella indicata da d68qdq8dq, però non ho ancora ben chiaro lo scenario della sequenza dei comandi da dare per ottenere in toto l’ambiente con cui potere finalmente scrivere il mio primo programma, sia dal punto di vista di codice che da quello di GUI.

“abbellendoli con gli effetti grafici delle librerie Qt5”, in gnome hai le GTK, il risultato potrebbe non essere all’altezza.

PS considera comunque di passare a F28

Mi unisco nelle considerazioni a lablinux, GTK e Qt hanno API differenti. O l’una o l’altra. Non ho mai visto un programma Qt fare uso delle librerie GTK o viceversa, non ha senso. Al limite sul vecchio KDevelop 3.5 esisteva la possibilità di creare applicazioni GNOME, ma da KDevelop 4 ci si è concentrati su KDE e Qt.

Oggo ho scaricato Qt5 dal sito “http://qt-project.org/downloads” e QtCreator si è avviato. Non posso dire che l’ambiente sia corredato di tutti gli strumenti occorrenti, perchè non l’ho ancora provato, ma nella schermata di Gnome mi ritrovo il lanciatore di QtCreator, Qt4 Assistant e Qt5 Designer.

Kde non lo conosco. Posso provare a scaricare un’immagine Live e provarla.

Scusa, ma perchè scaricarlo direttamente dal sito quando hai dnf o Apper che ti risolvono il problema delle dipendenze con i files RPM? Adesso hai le librerie Qt installate due volte… Pensa prima di agire…