<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>qmake &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/qmake/</link>
	<description>Feed of posts on WordPress.com tagged "qmake"</description>
	<pubDate>Fri, 18 Jul 2008 22:02:37 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[QGtkStyle: integrazione perfetta delle applicazione KDE in GNOME. Installazione ed uso]]></title>
<link>http://khole8.wordpress.com/?p=229</link>
<pubDate>Sat, 24 May 2008 10:06:07 +0000</pubDate>
<dc:creator>Ferro</dc:creator>
<guid>http://khole8.wordpress.com/?p=229</guid>
<description><![CDATA[
Gli sviluppatori Trolltech hanno sviluppato QGtkStyle, uno strumento che permette di dare uno stile]]></description>
<content:encoded><![CDATA[<p><img src="http://jlp.holodeck1.com/blog/wp-content/uploads/2007/06/qt4.png" alt="" width="114" height="114" /><img src="http://nicolasj.developpez.com/blog/images/gtk-logo-draft.png" alt="" width="115" height="115" /></p>
<p>Gli sviluppatori Trolltech hanno sviluppato <a href="http://labs.trolltech.com/page/Projects/Styles/GtkStyle" target="_blank">QGtkStyle</a>, uno strumento che permette di dare uno stile GTK alle applicazioni native Qt, sotto GNOME. Il problema dell'integrazione visiva tra le applicazioni KDE e quelle GNOME, ha sempre afflitto i sistemi Gnu/Linux. In Windows e Mac OsX, Qt, ha sempre avuto stili specifici, basati sul tema nativo del sistema. Se però, gli utenti KDE, hanno a disposizione il '<a href="http://gtk-qt.ecs.soton.ac.uk/" target="_blank">GTK-Qt Theme Engine</a>', che consente di dare alle applicazione GTK uno stile Qt, non esisteva nulla di simile per GNOME. L'unica soluzione era Qt QCleanlooks, ma non assicurava una perfetta integrazione. Con QGtkStyle, che usa direttamente il motore del tema GTK+, le applicazioni KDE diventano praticamente identiche a quelle native per GNOME, proprio come accade in Windows e Mac. QGtkStyle è veramente interessante e facile da installare.<!--more--></p>
<p><img src="http://media.arstechnica.com/journals/linux.media/450/gtkqt2.png" alt="" width="450" height="347" /></p>
<p><strong>Installazione<br />
</strong><br />
Per poter compilare QGtkStyle, dovete avere GTK2, QT4 e il pacchetto gtk2-x11-dev installati. In Ubuntu Hardy Heron basta dare un semplice:</p>
<p>sudo apt-get install libgtk2.0-dev libqt4-dev</p>
<p>Poi assicuratevi di avere subversion installato:</p>
<p>sudo apt-get install subversion</p>
<p>e date questa serie di comandi:</p>
<p>svn co svn://labs.trolltech.com/svn/styles/gtkstyle</p>
<p>cd gtkstyle/</p>
<p>qmake &#38;&#38; make</p>
<p>sudo make install</p>
<p>Ora, se tutto va per il verso giusto, non vi resta che installare Qt Configuration, lo strumento di configurazione di Qt4, con un semplice:</p>
<p>sudo apt-get install qt4-qtconfig</p>
<p>Terminata l'installazione lo trovate nel menù Sistema-&#62; Preferenze-&#62; Impostazioni Qt 4, apritelo e nella scheda 'Appearance', scegliete GTK come GUI Style, salvate (Ctrl+s) e noterete subito il cambiamento.</p>
<p><img src="http://img204.imageshack.us/img204/7494/schermataqtconfiguratiorq7.png" alt="" width="466" height="385" /></p>
<p>QGtkStyle funziona con tutte le applicazioni Qt4, come Skype e Last.fm e KWord, ma non con quelle basate su Qt3. Sono quindi supportate tutte le applicazioni per KDE4. Se riscontrate problemi nell'installazione di QGtkStyle, l'errore potrebbe essere dovuto al fatto qmake non sta usando la versione 4.x di Qt, controllate con:</p>
<p>qmake -v</p>
<p>se sta usando Qt3 date:</p>
<p>sudo update-alternatives --config qmake</p>
<p>e inserte il numero corrispondente a qmake-qt4, solitamente l'uno.</p>
<p>QGtkStyle è veramente interessante, perché rappresenta il grado più alto dell'integrazione tra Desktop Environment.</p>
<p><strong>Articoli correlati:</strong></p>
<p><a href="http://khole8.wordpress.com/2008/05/17/registrare-le-chiamate-di-skype-con-scx-tool-ecco-come-installarlo-su-ubuntu/" target="_blank">Registrare le chiamate di Skype con Scx Tool. Ecco come installarlo su Ubuntu</a></p>
<p><a href="http://khole8.wordpress.com/2008/05/06/neon-installiamo-amarok-2-su-kubuntu-e-suse/" target="_blank">Neon, installiamo Amarok 2 su Kubuntu e SUSE</a></p>
<p><a href="http://khole8.wordpress.com/2008/04/05/miglioriamo-laspetto-delle-applicazioni-wine/" target="_blank">Miglioriamo l’aspetto delle applicazioni Wine</a></p>
<p><img src="http://chaos.troll.no/~jbache/qt4.png" alt="" width="371" height="268" /></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Lezione Qt 2: Impostare un file .pro "ad hoc"]]></title>
<link>http://toastedtech.wordpress.com/?p=360</link>
<pubDate>Sun, 20 Apr 2008 17:26:39 +0000</pubDate>
<dc:creator>montoya</dc:creator>
<guid>http://toastedtech.wordpress.com/?p=360</guid>
<description><![CDATA[Nella prima lezione, avevamo visto che per la compilazione dei sorgenti, era indispensabile il coman]]></description>
<content:encoded><![CDATA[<p>Nella prima lezione, avevamo visto che per la compilazione dei sorgenti, era indispensabile il comando "qmake -project". Questo comando crea automaticamente un .pro (del progetto). Se da un lato si ha un vantaggio perché il programmatore non deve prendersi la briga di creare un .pro dedicato, dall'altro si hanno una serie spropositata di svantaggi.</p>
<p style="text-align:center;"><a href="http://toastedtech.wordpress.com/files/2008/04/qt4.jpg"><img class="aligncenter size-full wp-image-359" src="http://toastedtech.wordpress.com/files/2008/04/qt4.jpg" alt="" width="128" height="128" /></a></p>
<p>Un buon programmatore deve crearsi adeguatamente un proprio file .pro, altrimenti rischia di perdersi all'interno del progetto. La struttura di un file .pro non è difficile per niente, basta solo seguire i passi che a breve introdurrò.</p>
<p><!--more--></p>
<p>Come prima cosa, un progetto Qt (o in genere un qualsiasi progetto) deve attuare un certo ordine. Non è una legge da rispettare, però seguire un certo "stile" aiuterà sicuramente il programmatore nello svolgimento delle operazioni. Ad esempio, è bene disporre i propri sorgenti all'interno di una directory "src". Così come il file binario dentro "bin", i file di compilazione dentro "build" e così via.</p>
<p>Prima di vedere come si crea un file .pro, bisogna introdurre alcuni concetti.</p>
<p><strong>-&#62; File per l'icona di windows (usato solo in windows)</strong><br />
In ambiente windows, i binari hanno in genere un'icona standard (quella per i .exe tradizionali). Per associare al binario un'icona, basta creare un file .rc e posizionarlo nella directory corrente del progetto.</p>
<p>Un esempio di tale file è questo:<br />
<code>IDI_ICON1               ICON    DISCARDABLE     "resources/icons/logo.ico"</code></p>
<p><strong>-&#62; File per le immagini (e in genere altri file)</strong><br />
In genere in un programma GUI sono presenti delle immagini, che vengono utilizzate per i menuitem, bottoni, oppure label. Ci sono 3 metodi per inserire un'immagine nel nostro programma:</p>
<ol>
<li>usare <em>path assoluti</em>: questo metodo non merita neanche attenzione (scongiurato);</li>
<li>usare <em>path relativi</em>: in questi casi, le immagini hanno un percorso relativo all'eseguibile, e quindi si ha una certa "portabilità". E' comunque evidente che spostare il percorso del binario, implica uno sfasamento dei percorsi relativi;</li>
<li>usare <em>path assoluti all'interno del progetto</em>: questo modo di operare include le immagini nel binario e non si hanno modi di sbagliare.</li>
</ol>
<p>Spiego meglio il 3° punto. Le immagini (o altri file, ad esempio file di testo) vengono convertite in file sorgenti .cpp e nello specifico, in dei vettori pieni zeppi di numeri esadecimali. Questo a noi non ci interessa... la sostanza è che le immagini verranno incluse nel binario definitivo e il loro uso nelle finestre è completamente privo di rischi.</p>
<p>Un file del genere specifica le "risorse" che devono essere incluse nel progetto. In genere io uso una directory "resources" e dentro di essa, posiziono il mio file di risorsa che ha un estensione .qrc. Questo file è di tipo XML e di facile utilizzo. Dentro resources, creo un'altra directory "icons" contenente tutte le immagini che userò (preferisco png a jpg). Se ad esempio, dentro "resources/icons/" ho un file immagine chiamato "logo.png", in "resources" avrò un file .qrc del genere:</p>
<p>&#60;RCC&#62;<br />
&#60;qresource prefix="/icons" &#62;<br />
&#60;file&#62;icons/logo.png&#60;/file&#62;<br />
&#60;/qresource&#62;<br />
&#60;/RCC&#62;</p>
<p>Io considero indispensabili la configurazioni di questi 2 file. Detto questo, procediamo alla creazione del file .pro per il nostro progetto.</p>
<p>Il nostro file .pro si chiamerà Progetto.pro e sarà così composto:</p>
<p># sorgenti<br />
<code>HEADERS += src/finestra.h<br />
FORMS += ui/finestra.ui<br />
SOURCES += src/finestra.cpp src/main.cpp</code></p>
<p># build<br />
<code>OBJECTS_DIR += build/o<br />
MOC_DIR += build/moc<br />
RCC_DIR += build/rcc<br />
UI_DIR += build/ui</code></p>
<p># binario<br />
<code>DESTDIR += bin</code></p>
<p># altro<br />
<code>RC_FILE += Progetto.rc<br />
RESOURCES += resources/Progetto.qrc</code></p>
<ul>
<li>In HEADERS, FORMS e SOURCES abbiamo fissato il percorso fisico dei sorgenti e dei file delle finestre.</li>
<li>In OBJECTS_DIR ci sono i file oggetto delle compilazioni, in MOC_DIR i file sorgenti dovuti alla connessione degli eventi, in RCC_DIR sono presenti i file sorgenti delle risorse e in UI_DIR i file headers delle finestre. Queste 4 variabili prendetele così come sono, e usatele per ogni progetto Qt.</li>
<li>In DESTDIR andrà il binario risultante dalla compilazione totale.</li>
<li>In RC_FILE c'è il file per l'icona di windows.</li>
<li>In RESOURCES il file delle risorse.</li>
</ul>
<p>Qua sotto, ecco la situazione attuale: avere impostato un progetto così significa partire ben ordinati!</p>
<p style="text-align:center;"><a href="http://toastedtech.files.wordpress.com/2008/04/tree1.png"><img class="aligncenter size-full wp-image-361" src="http://toastedtech.wordpress.com/files/2008/04/tree1.png" alt="" width="178" height="336" /></a></p>
<p>A questo punto, scordatevi assolutamente il comando "qmake -project". Dovrete da ora in poi, usare solo "qmake" e "make".</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Lezione Qt 1: Creare un semplice progetto]]></title>
<link>http://toastedtech.wordpress.com/?p=358</link>
<pubDate>Fri, 18 Apr 2008 15:25:24 +0000</pubDate>
<dc:creator>montoya</dc:creator>
<guid>http://toastedtech.wordpress.com/?p=358</guid>
<description><![CDATA[Premetto che sono uno dei più scarsi programmatori della Terra e che quindi non voglio insegnare nu]]></description>
<content:encoded><![CDATA[<p>Premetto che sono uno dei più scarsi programmatori della Terra e che quindi non voglio insegnare nulla a nessuno, però cerco di condividere quelle poche cose che so a tutti voi. Inoltre non è detto che farò altre lezioni, però per eventuali altre lezioni, il titolo sarà del tipo "Lezione Qt n: ....". Detto questo, vediamo come creare un semplice progettino con le Qt4.</p>
<p style="text-align:center;"><a href="http://toastedtech.files.wordpress.com/2008/04/qt4.jpg"><img class="aligncenter size-full wp-image-359" src="http://toastedtech.wordpress.com/files/2008/04/qt4.jpg" alt="" width="128" height="128" /></a></p>
<p>Come prima cosa, bisogna aver installato le Qt4.x e in questa sede non farò di certo vedere come installare le librerie e impostare tutte le eventuali dipendenze (compilatore c++, make, ecc). Assumo per scontato che le liberie Qt4 (occhio alla versione) siano installate correttamente.</p>
<p><!--more--></p>
<p>Il nostro intento sarà quello di creare una piccola finestra che ha diversi componenti grafici: un'area testo, un bottone e una label. Lo scopo sarà quello di far visualizzare nella label il testo che scriveremo nell'area di testo dopo aver premuto l'apposito bottone.</p>
<p>Chi viene dalla programmazione Java e da diversi IDE come Netbeans, inizialmente si troverà (probabilmente) un pochino a disagio.</p>
<p>La prima cosa da fare, è la creazione di una directory per avere un po' di pulizia. Metteremo tutto ciò che ci serve, all'interno di tale cartella.</p>
<p>Per disegnare la finestra, ci baseremo su designer, il magnifico programma che permette di disegnare GUI in maniera veloce e soprattutto facile... molto meglio del netbeans. Nel video qua sotto, vedremo come creare un file di finestra, che non sarà altro che un banale file XML.</p>
<p style="text-align:center;"><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/zjfQ76-6XFg'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/zjfQ76-6XFg&rel=0' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object></span></p>
<p>Il file della finestra "finestra.ui" sarà processato in fase di compilazione in un file sorgente C++ (per l'esattezza, verrà chiamato "ui_finestra.h").</p>
<p>Per usare la finestra, bisogna crearsi 2 file: "finestra.h" che conterrà la definizione della classe Finestra che creeremo, e il file "finestra.cpp" che conterrà le relative implementazioni.</p>
<p>La classe Finestra erediterà da 2 altre classi: da QMainWindow (che è la classe per le finestre in generale) e dalla classe Ui::MainWindow (ossia la classe MainWindow all'interno del namespace Ui che sarà generato dal file finestra.ui).</p>
<p><code>class Finestra : public QMainWindow, public Ui::MainWindow</code></p>
<p>Inoltre la classe conterrà uno "<strong>slot</strong>", ossia un metodo normale che viene eseguito se un particolare "<strong>signal</strong>" viene attivato o generato. La macro Q_OBJECT è indispensabile per trattare questo tipo di cose.</p>
<p><code>public slots:<br />
    void stampaVideo();</code></p>
<p>Questi 2 concetti sono nuovi rispetto al Java, ma non è così difficile entrare nella logica. Un signal può essere paragonato ad un evento di "clicked" del mouse, oppure alla chiusura di una finestra, e così via. C'è da dire che un metodo slot può essere anche chiamato manualmente all'interno del codice, ma un signal non può far eseguire un metodo non slot.</p>
<p>Nel file di implementazione, verrà richiamato il metodo di inizializzazione componenti grafici della finestra, mediante la chiamata al metodo setupUi.</p>
<p><code>setupUi(this);</code></p>
<p>Per far si che il metodo venga chiamato al momento della pressione del bottone, è necessario "connettere" fisicamente il signal e lo slot, mediante il metodo "connect":</p>
<p><code>connect(pushButtonScrivi, SIGNAL(clicked()), this, SLOT(stampaVideo()));</code></p>
<p>All'interno del metodo stampaVideo() metteremo il codice per prendere il testo dall'area di testo e successivamente visualizzarla nella label appena sopra.</p>
<p>Fatto tutto, saremo pronti alla compilazione del progetto. I passi da fare saranno 3:</p>
<ul>
<li><code>qmake -project</code> (Serve per la creazione del file .pro del progetto. Nelle prossime lezioni, useremo file file.pro fatti da noi);</li>
<li><code>qmake</code> (Serve per la generazione del Makefile);</li>
<li><code>make</code> (Genera i file sorgenti dai file.ui, compila i file.src e crea il binario).</li>
</ul>
<p>Alla fine, avremo nella directory corrente, il nostro eseguibile funzionante.</p>
<p style="text-align:center;"><strong><a href="http://specialistica.netsons.org/blog/esempioQt.tar.gz">Progetto completo</a></strong></p>
]]></content:encoded>
</item>

</channel>
</rss>
