PI Guide/ Programmare con GNU/Linux

Dritte, consigli ed esempi pratici per iniziare a sviluppare software con la tua distro preferita

Grazie alle possibilità offerte, GNU/Linux è il paradiso dei programmatori. Sia i principianti che gli esperti in questo sistema operativo open source trovano qualcosa che fa per loro e i tool necessari per realizzare le proprie idee. Abbiamo così deciso di proporre una serie di programmi, sviluppati in diversi linguaggi, dai più semplici ai più complessi, per invogliare chi ancora non sa programmare ma che vorrebbe iniziare a farlo (e a costo zero). Risolveremo semplici problemi reali, semplificando la vita di tutti giorni: scopriremo come scrivere software che manipolano per noi pagine Web, immagini, musica e tanto altro. Infine ci apriremo alla programmazione Android. Esempi utili, dunque, ma anche necessari per riuscire a comprendere appieno la magia della "programmazione libera" su GNU/Linux.

Partiamo da QtCreator
Prima di addentrarci negli esempi pratici installiamo nella nostra distro l'ambiente di sviluppo e le librerie necessarie che ci serviranno nel corso dell'articolo o per eventuali sperimentazioni "fai da te".

Per installare QtCreator su un sistema di tipo Debian, basta dare da un terminale il comando sudo apt-get install qtcreator. Questo comando installa automaticamente anche le principali librerie Qt.

Per poter utilizzare tutti i vari componenti delle librerie Qt, e non solo quelli di base, dobbiamo installarli. Possiamo farlo selezionando automaticamente tutti i pacchetti con il comando sudo apt-get install 'libqt5*'.


Appena apriamo il programma QtCreator, abbiamo diverse opzioni: possiamo creare un nuovo progetto cliccando sul pulsante New Project oppure possiamo aprirne uno (è possibile importare progetti makefile e cmake). Ma possiamo anche provare degli esempi.


Quando abbiamo caricato un progetto e vogliamo provare ad eseguirlo, possiamo cliccare sul menu Build e scegliere direttamente la voce Run. Se vogliamo soltanto compilare il programma, senza eseguirlo, basta cliccare sulla voce Build all.


Con QtCreator, inoltre, possiamo disegnare interfacce grafiche per i nostri programmi e convertirle in codice Python.
Per farlo, apriamo QtCreator e dal menu File scegliamo Nuovo file. Indichiamo che vogliamo realizzare un nuovo file di tipo Qt, un Qt Designer Form. Basta selezionarlo e cliccare sul pulsante Avanti per cominciare a disegnare.


Dopo avere salvato l'interfaccia grafica disegnata in un file .ui, possiamo facilmente tradurla in codice Python con il comando pyuic4 mainwindow.ui -o mainwindow_ui.py, dove il primo nome è quello della UI e il secondo quello del file da ottenere.


20 Commenti alla Notizia PI Guide/ Programmare con GNU/Linux
Ordina
  • È da un po` che non guardavo qtcreator, e non sapevo che adesso si potessero scrivere anche programmi per android (e IOS pare).

    A questo punto potrebbe essere considerato superiore a xamarin, visto che non richiede nemmeno un macchina virtuale per funzionare, e viste le possibilità offerte da QT.

    Resta solo un problema ... che sono le QT e che dopo Trolltech (che ci aveva visto bene a quanto pare) si sono perdute in decine di passaggi e di licenze assurde e ad oggi, chiunque voglia realizzare qualcosa che non sia GPL, si trova di fronte ad un bel punto interrogativo.
    non+autenticato
  • - Scritto da: Whooommmm
    > ad oggi, chiunque voglia
    > realizzare qualcosa che non sia GPL, si trova di
    > fronte ad un bel punto
    > interrogativo.

    E tu rilascia in GPL.
    Stiamo lavorando tutti per eliminare il closed e favorire l'estinzione di chi programma in closed.
    GPL e' la soluzione!
  • - Scritto da: panda rossa
    > - Scritto da: Whooommmm
    > > ad oggi, chiunque voglia
    > > realizzare qualcosa che non sia GPL, si
    > trova
    > di
    > > fronte ad un bel punto
    > > interrogativo.
    >
    > E tu rilascia in GPL.
    > Stiamo lavorando tutti per eliminare il closed e
    > favorire l'estinzione di chi programma in
    > closed.
    > GPL e' la soluzione!

    Si ma mentre lavorate tutti per eliminare il closed, c'è in giro anche gente che lavora per vivere.
    non+autenticato
  • - Scritto da: Whooommmm
    > - Scritto da: panda rossa
    > > - Scritto da: Whooommmm
    > > > ad oggi, chiunque voglia
    > > > realizzare qualcosa che non sia GPL, si
    > > trova
    > > di
    > > > fronte ad un bel punto
    > > > interrogativo.
    > >
    > > E tu rilascia in GPL.
    > > Stiamo lavorando tutti per eliminare il
    > closed
    > e
    > > favorire l'estinzione di chi programma in
    > > closed.
    > > GPL e' la soluzione!
    >
    > Si ma mentre lavorate tutti per eliminare il
    > closed, c'è in giro anche gente che lavora per
    > vivere.

    Pure la mafia lavora per vivere.

    Che cosa vogliamo fare? Migliorare il mondo o lasciare che siano sempre i soliti a riempirsi la pancia?
  • - Scritto da: panda rossa
    > - Scritto da: Whooommmm
    > > - Scritto da: panda rossa
    > > > - Scritto da: Whooommmm
    > > > > ad oggi, chiunque voglia
    > > > > realizzare qualcosa che non sia
    > GPL,
    > si
    > > > trova
    > > > di
    > > > > fronte ad un bel punto
    > > > > interrogativo.
    > > >
    > > > E tu rilascia in GPL.
    > > > Stiamo lavorando tutti per eliminare il
    > > closed
    > > e
    > > > favorire l'estinzione di chi programma
    > in
    > > > closed.
    > > > GPL e' la soluzione!
    > >
    > > Si ma mentre lavorate tutti per eliminare il
    > > closed, c'è in giro anche gente che lavora
    > per
    > > vivere.
    >
    > Pure la mafia lavora per vivere.
    >
    > Che cosa vogliamo fare? Migliorare il mondo o
    > lasciare che siano sempre i soliti a riempirsi la
    > pancia?

    Al di fuori dell'ambito di studio, fino ad ora la GPL o non è servita ad una beata cippa o è servita proprio perché i soliti si riempissero la pancia.

    Per quanto mi riguarda io potrei anche proporre a chi mi paga profumatamente di rilasciare il mio lavoro gratuitamente, in modo che gli altri che non mi pagano ne possano usufruire e fare offerte al ribasso e fotterci alla grande, ma sono un vile e lascio l'orgoglio della cosa ad te che sei un idealista.
    non+autenticato
  • - Scritto da: Whooommmm
    > - Scritto da: panda rossa
    > > - Scritto da: Whooommmm
    > > > - Scritto da: panda rossa
    > > > > - Scritto da: Whooommmm
    > > > > > ad oggi, chiunque voglia
    > > > > > realizzare qualcosa che non
    > sia
    > > GPL,
    > > si
    > > > > trova
    > > > > di
    > > > > > fronte ad un bel punto
    > > > > > interrogativo.
    > > > >
    > > > > E tu rilascia in GPL.
    > > > > Stiamo lavorando tutti per
    > eliminare
    > il
    > > > closed
    > > > e
    > > > > favorire l'estinzione di chi
    > programma
    > > in
    > > > > closed.
    > > > > GPL e' la soluzione!
    > > >
    > > > Si ma mentre lavorate tutti per
    > eliminare
    > il
    > > > closed, c'è in giro anche gente che
    > lavora
    > > per
    > > > vivere.
    > >
    > > Pure la mafia lavora per vivere.
    > >
    > > Che cosa vogliamo fare? Migliorare il mondo o
    > > lasciare che siano sempre i soliti a
    > riempirsi
    > la
    > > pancia?
    >
    > Al di fuori dell'ambito di studio, fino ad ora la
    > GPL o non è servita ad una beata cippa o è
    > servita proprio perché i soliti si riempissero la
    > pancia.
    >
    > Per quanto mi riguarda io potrei anche proporre a
    > chi mi paga profumatamente di rilasciare il mio
    > lavoro gratuitamente, in modo che gli altri che
    > non mi pagano ne possano usufruire e fare offerte
    > al ribasso e fotterci alla grande, ma sono un
    > vile e lascio l'orgoglio della cosa ad te che sei
    > un
    > idealista.
    .... e pure ben confuse.
    GPL = gratis ?
    E da quando ?
    non+autenticato
  • evidentemente il vostro business e' impostato secondo la vecchia mentalita'

    guarda a Redhat e compagnia

    sono aziende che rilasciano il codice, eppure fatturano miliardi

    poi, ad oggi, stiamo assistendo allo shift verso il cloud, cioe' verso un'economia del software basata sui servizi piuttosto che sugli eseguibili
    non+autenticato
  • Da te si può essere sicuri di avere risposte fuori luogo o inutili perché non sono costruttive.
    Poi trovi sempre il cefalo che abbocca e inizia a polemizzare con il polemizzatore.
    Ma che ti ha fatto il mondo per ridurti così?!
    non+autenticato
  • - Scritto da: Whooommmm
    > È da un po` che non guardavo qtcreator, e
    > non sapevo che adesso si potessero scrivere anche
    > programmi per android (e IOS
    > pare).

    e' da un bel pezzo

    > A questo punto potrebbe essere considerato
    > superiore a xamarin, visto che non richiede

    non ha la marea di bug di xamarin soprattutto

    hai letto sui forum della microsoft? con l'ultima versione hanno cannato di brutto

    xamarin e' notoriamente un prodotto buggato, ma dopo l'acquisizione da parte di ms e' nettamente peggiorato


    > Resta solo un problema ... che sono le QT e che
    > dopo Trolltech (che ci aveva visto bene a quanto
    > pare) si sono perdute in decine di passaggi e di
    > licenze assurde e ad oggi, chiunque voglia
    > realizzare qualcosa che non sia GPL, si trova di
    > fronte ad un bel punto
    > interrogativo.

    se vuoi realizzare software closed, loro ti spingono a comprare una licenza commerciale

    ad oggi puoi usare la versione lgpl per i software commerciali, se non sei un'azienda megamiliardaria

    su android funge alla performance, su ios non ho ancora capito quale sia la situazione ( visto che si dice che apple impone/imponeva il linking statico )
    non+autenticato
  • - Scritto da: collione
    > - Scritto da: Whooommmm
    > > È da un po` che non guardavo qtcreator,
    > e
    > > non sapevo che adesso si potessero scrivere
    > anche
    > > programmi per android (e IOS
    > > pare).
    >
    > e' da un bel pezzo

    Si, in effetti li ho abbandonate tempo fa, da quando Nokia ha abbandonato Symbian e io KDE.

    >
    > > A questo punto potrebbe essere considerato
    > > superiore a xamarin, visto che non richiede
    >
    > non ha la marea di bug di xamarin soprattutto
    >
    > hai letto sui forum della microsoft? con l'ultima
    > versione hanno cannato di
    > brutto
    >
    > xamarin e' notoriamente un prodotto buggato, ma
    > dopo l'acquisizione da parte di ms e' nettamente
    > peggiorato
    >
    >
    > > Resta solo un problema ... che sono le QT e
    > che
    > > dopo Trolltech (che ci aveva visto bene a
    > quanto
    > > pare) si sono perdute in decine di passaggi
    > e
    > di
    > > licenze assurde e ad oggi, chiunque voglia
    > > realizzare qualcosa che non sia GPL, si
    > trova
    > di
    > > fronte ad un bel punto
    > > interrogativo.
    >
    > se vuoi realizzare software closed, loro ti
    > spingono a comprare una licenza
    > commerciale
    >
    > ad oggi puoi usare la versione lgpl per i
    > software commerciali, se non sei un'azienda
    > megamiliardaria
    >

    LGPL ? Sei sicuro ? Hai un link ?

    Perché che motivo avrebbe uno di comprare la licenza commerciale, se può usufruire delle librerie e rilasciare il software con la licenza che vuole ?

    Cioè sai che non è per far contenti i vari Panda che Trolltech aveva adottato la GPL vero ?

    > su android funge alla performance, su ios non ho
    > ancora capito quale sia la situazione ( visto che
    > si dice che apple impone/imponeva il linking
    > statico
    > )

    Vabbè il linking statico non è mica una tragedia.
    non+autenticato
  • - Scritto da: Whooommm

    > LGPL ? Sei sicuro ? Hai un link ?

    si https://www.qt.io/qt-licensing-terms/

    "The primary open-source license is the GNU Lesser General Public License v. 3 (“LGPL”)"

    > Perché che motivo avrebbe uno di comprare la
    > licenza commerciale, se può usufruire delle
    > librerie e rilasciare il software con la licenza
    > che vuole
    > ?

    impossibile linkare staticamente le qt ( su ios era obbligatorio e rendeva impossibile usare qt, non so se le cose sono cambiate )

    mancanza di alcuni tool, tra tutti il compilatore di qml, che consente di velocizzare l'avvio delle applicazioni e integrare i file qml negli eseguibili

    niente supporto da parte di Digia

    > Cioè sai che non è per far contenti i vari Panda
    > che Trolltech aveva adottato la GPL vero
    > ?

    certo che lo so, ero in giro all'epoca in cui QT era closed source e GTK gli rubava tutto lo share su Linux

    > Vabbè il linking statico non è mica una tragedia.

    dipende

    io per esempio ho di recente realizzato un'applicazione per un amico che ha uno studio di assicurazioni

    volevo creare un singolo eseguibile per facilitare il deployment, cosa che non ho potuto fare e ho dovuto non solo distribuire le librerie qt ma pure i file qml sfusi ( e non sono pochi )
    non+autenticato
  • non viene menzionato ma ' l'unico vero RAD disponibile ANCHE per linux,
    potreste aggiornare l'articolo?
    non+autenticato
  • - Scritto da: Lazarus
    > non viene menzionato ma ' l'unico vero RAD
    > disponibile ANCHE per
    > linux,
    > potreste aggiornare l'articolo?

    CHI ?!

    Già è un articolo sconclusionato, perché cerca di riassumere il mondo infinito della programmazione open source con qualche esempio. Se poi ci si mettono pure gli eredi di Delphi con il "freepascal" allora buonanotte !
    non+autenticato
  • Non e' semplicemente un erede di delphi e' l'unico vero write once compile anywhere , se scrivi il codice come si deve porti il programma su tutto ,
    dal pc al raspberry pi , su windows linux mac .
    non+autenticato
  • "E possiamo prelevarla direttamente dal set di immagini standard fornito dalle librerie Qt:"

    No, le icone sono fornite dall'iconpack della distribuzione es numix. I nomi delle icone seguono lo standard di freedesktop e qt segue questo standard cercando le icone in /usr/share/icons. Non sono le librerie QT a fornire le icone
    non+autenticato
  • "gli attributi sono due stringhe di testo" a me sembrano degli parametri

    "La dimensione di ogni immagine è fornita dalla sua funzione size" a m non sembra una funzione ma un membro (variabile)
    non+autenticato