<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

  <channel>

  
  <title>Qt DevNet forums: Italian 1300013842**  </title>
  <link>http://qt-project.org/forums/viewforum/32/</link>
  <description>RSS feed for latest posts in Italian</description>
  <copyright>Copyright 2012 Qt Developer Network</copyright>
  <docs>http://www.rssboard.org/rss-specification</docs>
  <generator>ExpressionEngine v2.3.1 http://expressionengine.com/</generator>
  <lastBuildDate>Sun, 13 Mar 2011 12:57:22 GMT</lastBuildDate>
  <atom:link href="http://qt-project.org/feeds/all_forums/32" rel="self" type="application/rss+xml" />
  
  
  
        <item>
            <title>Kill QThreadPool</title>
            <link>http://qt-project.org/forums/viewreply/84906</link>
            <author>GSDeveloper</author>
            <description><![CDATA[Grazie per l&#8217;aiuto. Non ho ancora provato con QFuture perche&#8217; ho visto che c&#8217;e&#8217; scritto nel Help:
&#8220;&#8230; Be aware that not all asynchronous computations can be canceled. For example, the future returned by QtConcurrent::run() cannot be canceled; but the future returned by QtConcurrent::mappedReduced() can&#8230;&#8221;.

	Sembra che le elaborazioni lanciate con QtConcurrent non si puo&#8217; usare il metodo &#8220;QFuture::cancel()&#8221;.
Il codice e&#8217; il seguente:

	
		Con questo metodo lancio i vari &#8220;QtConcurrent::run&#8221;:
	

	void DBManagerObj::NewOptSlot&#40;const NewOptDataDB &amp;amp;tNewOptData&#41;
&#123;
&amp;nbsp;if&#40;DBManagerThrStatus::RUN_STS == _tThrStatus.iStatus&#41;
&amp;nbsp;&#123;
&amp;nbsp; DBIntStatusFut *ptFut = new DBIntStatusFut&#40;QtConcurrent::run&#40;this,
&amp;nbsp; &amp;nbsp;&amp;amp;DBManagerObj::NewOptExecThr,
&amp;nbsp; &amp;nbsp;tNewOptData&#41;&#41;;
&amp;nbsp; poco_check_ptr&#40;ptFut&#41;;
&amp;nbsp;
&amp;nbsp; _rgptResFuture.append&#40;ptFut&#41;;
&amp;nbsp;&#125;
&#125;


	
		Questo e&#8217; il metodo che esegue le operazioni di scrittura su Database (da notare che non uso le funzionalita&#8217; dell Qt SQL, ma utilizzo in questo caso le POCO C++ library, perche&#8217; hanno la gestione integrata del &#8220;Session Pool&#8221; e poi perche&#8217; hanno altre Feature che ho gia&#8217; utilizzate in passato)
	

	DBManagerObj::DBIntStatus DBManagerObj::NewOptExecThr&#40;const NewOptDataDB &amp;amp;tNewOptData&#41;
&#123;
&amp;nbsp;if&#40;!_ptSessPool&#41;
&amp;nbsp;&#123;
&amp;nbsp; poco_warning&#40;_tLog,
&amp;nbsp; &amp;nbsp;&amp;quot;DBManagerObj: WARNING: no Session Pool!&amp;quot;&#41;;
&amp;nbsp;
&amp;nbsp; return DBManagerObj::DBIntStatus&#40;&#45;1&#41;;
&amp;nbsp;&#125;
&amp;nbsp;
&amp;nbsp;QElapsedTimer tTimer;
&amp;nbsp;
&amp;nbsp;tTimer.start&#40;&#41;;
&amp;nbsp;try
&amp;nbsp;&#123;
&amp;nbsp; Poco::Data::Session tSess&#40;_ptSessPool&#45;&amp;gt;get&#40;&#41;&#41;;
&amp;nbsp;
&amp;nbsp; tSess &amp;lt;&amp;lt; &amp;quot;INSERT INTO TNewOptData (BTCTL, ID, BTC1m, Vel, DLTLDist, DLPos) &amp;quot;
&amp;nbsp; &amp;nbsp;&amp;quot;VALUES(?,?,?,?,?,?)&amp;quot;,
&amp;nbsp; &amp;nbsp;Poco::Data::use&#40;tNewOptData.i32BTCTL&#41;,
&amp;nbsp; &amp;nbsp;Poco::Data::use&#40;tNewOptData.i32ID&#41;,
&amp;nbsp; &amp;nbsp;Poco::Data::use&#40;tNewOptData.BTC1m&#41;,
&amp;nbsp; &amp;nbsp;Poco::Data::use&#40;tNewOptData.Vel&#41;,
&amp;nbsp; &amp;nbsp;Poco::Data::use&#40;tNewOptData.DLTLDist&#41;,
&amp;nbsp; &amp;nbsp;Poco::Data::use&#40;tNewOptData.DLPos&#41;,
&amp;nbsp; &amp;nbsp;Poco::Data::now;
&amp;nbsp;&#125;
&amp;nbsp;catch&#40;Poco::Data::ODBC::ODBCException &amp;amp;tExc&#41;
&amp;nbsp;&#123;
&amp;nbsp; std::string strTemp = &amp;quot;DBManagerObj: Insert Data Failed!: &amp;quot;;
&amp;nbsp;
&amp;nbsp; strTemp += tExc.className&#40;&#41;;
&amp;nbsp; strTemp += &amp;quot; &amp;quot;;
&amp;nbsp; strTemp += tExc.displayText&#40;&#41;;
&amp;nbsp; poco_warning&#40;_tLog,
&amp;nbsp; &amp;nbsp;strTemp&#41;;
&amp;nbsp;&#125;
&amp;nbsp;
&amp;nbsp;return DBManagerObj::DBIntStatus&#40;1,
&amp;nbsp; tTimer.elapsed&#40;&#41;&#41;;
&#125;


	Il problema secondo me e&#8217; che se nel secondo metodo, per qualche motivo  l&#8217;elaborazione si dovesse prolungare, non ho modo di concludere l&#8217;operazione se l&#8217;utente chiede di arrestare il programma. Mettendo infatti una Sleep (tanto per simulare un &#8220;Long Run&#8221;), all&#8217;interno del secondo metodo, il programma resta piantato fintatnto che il QtConcurrent::run non finisce l&#8217;esecuzione.

	Saluti
Giulio]]></description>
            <guid isPermaLink="false">52b7e2180a531598e897849dcc913b08</guid>
            <pubDate>Mon, 07 May 2012 15:06:30 GMT</pubDate>
        </item>
  
        <item>
            <title>Kill QThreadPool</title>
            <link>http://qt-project.org/forums/viewthread/16916</link>
            <author>GSDeveloper</author>
            <description><![CDATA[Salve a tutti,

	Scrivo per la prima volta in questo forum.
Ho un problema utilizzando QtConcurrent::run. In pratica sto provando a vedere quanto possa essere robusto un programma, utilizzando piu&#8217; thread con QtConcurrent, per poter scrivere su un Database in modo non bloccante.
Il tutto funziona perfettamente nel metodo QtConcurrent::run eseguo una mia procedura di connessione verso un Database SQL Express con ODBC. Per provare ho inserito una sleep all&#8217;interno della procedura per simulare una query piu&#8217; lunga del necessario. Ho scoperto che se sono in questa sleep, all&#8217;interno del metdo QtConcurrent::run, e provo a chiudere il programma succede che viene chiuso tutto (finestre, thread generati da me ecc.) tranne i Thread generati dal QtConcurrent. Il programma quindi rimane bloccato e non termina subito.
Leggendo ho scoperto che QtConcurrent fa uso del QThreadPool, pero&#8217; non ho trovato nulla per terminare in modo istantaneo questi Thread. Se quindi, in un metodo di QtConcurrent::run, succede qualcosa di inaspettato che prolunga l&#8217;esecuzione della funzione, come posso terminare quel Thread istantaneamente?

	Grazie in anticipo.]]></description>
            <guid isPermaLink="false">a239b8f96dcb64da45b553e8903e9a4c</guid>
            <pubDate>Fri, 04 May 2012 12:18:59 GMT</pubDate>
        </item>
  
        <item>
            <title>Ministro qt</title>
            <link>http://qt-project.org/forums/viewthread/16213</link>
            <author>nephertiti</author>
            <description><![CDATA[Qualcuno sa usare ministro su android?Volevo chiedere delucidazioni su un problema riscontrato,ho creato un programma server&#45;client per un antifurto su un tablet con android versione 2 ,il mio problema è che ogni tanto devo ricaricare le librerie da internet senza alcun motivo apparente?potrebbe essere la chiusura errata della mia applicazione io uso il comando exit(1)?Grazie Mille]]></description>
            <guid isPermaLink="false">18b2486e5e2435a1206b89883dc1e97b</guid>
            <pubDate>Mon, 09 Apr 2012 19:16:56 GMT</pubDate>
        </item>
  
        <item>
            <title>Form</title>
            <link>http://qt-project.org/forums/viewreply/81415</link>
            <author>MauroTec</author>
            <description><![CDATA[Se libro è instanza di classe che eridita da QWidget tutto dovrebbe funzionare perchè il metodo show() mostra il widget, tuttavia se hai una widget mainwindow già mostrato devi usare il metodo addWidget(libro) per aggingere libro a mainwindow. Mentre se vuoi aprire un widget su mainwindow devi usare le dialog.

	Si se posti il codice forse ci si capisce meglio.

	Ciao.]]></description>
            <guid isPermaLink="false">1fcebe740025cc2885fad3ca69332a04</guid>
            <pubDate>Sun, 08 Apr 2012 13:32:18 GMT</pubDate>
        </item>
  
        <item>
            <title>[Qt Creator] E possibile aggiungere un linguaggio?</title>
            <link>http://qt-project.org/forums/viewreply/81414</link>
            <author>MauroTec</author>
            <description><![CDATA[Ciao a tutti, sfrutto questo post come presentazione. 

	Uso Qt da circa 4 anni, prima ho compinciato con pyqt e poi con Qt/C++.
Ho sviluppato avrdudequi (cerca su gittorius) dove ho usato per la prima volta il caricamento dinamico delle gui.

	Anche io sviluppo embedded con MCU atmel e mi necessità un IDE per GNU/Linux. Varie strade ho provato e l&#8217;ideale sarebbe proprio QtCreator. 

	Sono riuscito ad usare QtCreator e Qmake per compilare codice con avr&#45;gcc, il makefile genera staticlib o ihex file a seconda del template.

	Il fastprocessor di QtCreator è davvero rapido ma è pensato per il toolkit Qt, se si potesse snellire sarebbe anche più comprensibile così da risultare più agevolo metterci le mani.

	Tempo a dietro ho provato con sdcc e qtcreator con risultati negativi, ora non ricordo con precisione il perche del mancato funzionamento però ricordo che si deve creare un extracompiler target perchè quello di default va bene solo per gcc e ci sono argomenti passati a questo che non sono riconosciuti da sdcc. 

	Di recente ho studiato il codice interne di QtCreator al fine  di imparare dal questo codice con risultati poco redditizi, la difficoltà sta nella quantità di codice e indirezzioni usate per astrarre, allora sono partito con la versione 1.0 di qtcreator che è più snella e anche più comprensibile. 

	Ora sono fermo su un elemento del menu build install project, mi serviva per installare le librerie statiche in sviluppo. Mi spiego, se sviluppo una lib per avr ti servirà poi provarla e quindi installarla in un percorso prestabilito ad esempio la dir .avr in home utente. Nel caso di progetto o sub progetto con template app non deve eseguire il make install.

	Da shell il make install funziona solo nel caso delle lib e la variabile INSTALL viene popolata in automatico se il template è lib.

	alexbottoni in parte a già risposto, io aggiungo che per fare un lavoro ben fatto si deve creare un plugin a partire da QtProjectPlugin presente nel tree. In merito al parser c&#8217;è da dire che l&#8217;editor per cpp usa il fastprocessor e sintaxhighlighter e c&#8217;è anche macro epsansione ed è dura mettere le mani con cognizione di causa, però a me l&#8217;editor cpp funziona senza problemi anche con codice non qt, sono anche riuscito ad abilitare l&#8217;help online sulle funzioni della avrlibc, ma alle volte premendo F1 dice di non trovare alcuna documentazione mentre altre volte lavora.

	Ok, scusate il lungo post.

	Se non sono qui, potete beccarmi su Arduino forum, o su http://www.electroit.tk/index.php

	Ciao.]]></description>
            <guid isPermaLink="false">8a77dc9ffc4943b0f7b52acbee660eac</guid>
            <pubDate>Sun, 08 Apr 2012 13:15:02 GMT</pubDate>
        </item>
  
        <item>
            <title>QSqlRelationalModel come aggiungere 3 colonne con dati da altra tabella</title>
            <link>http://qt-project.org/forums/viewthread/16155</link>
            <author>pasomas</author>
            <description><![CDATA[Salve a tutti potreste darmi uno snippet funzionante per aggiungere le colonne in una QTableView? Lavoro su 4.7
La mia situazione è questa : ho implementato una classe widget contenente una QTableView caricando i dati da db MySQL tramite QSqlRelationalModel e fin qui funziona tutto alla perfezione in estrazione e aggiornamento dati db tramite QDataWidgetMapper. Mi sono accorto in seguito di dover far visualizzare all&#8217;utente anche altri 3 campi di una table clienti (ragione sociale, cognome, nome) in relazione alla table principale del mio modello tramite il codice cliente.
Visto che la relation non permette i legami 1 a N (non posso utilizzare il cod cliente per mostrare in contemporanea anche rag. Soc., cognome, nome) ho provato quindi con 

	&#45;un QSortFilterProxyModel con override sui metodi data, columnCount, flags intercettando l&#8217;indice delle mie nuove 3 colonne
&#45;setSourceModel per legarlo al mio modello base funzionante (QSqlRelationalModel)
&#45;chiamata al metodo insertColumns(3,3) del proxy che ritorna sempre true

	ma senza avere alcun effetto e non vedendo mai comparire le colonne! Non ho errori.

	Qualcuno mi può dare una mano? Non ho trovato da nessuna parte un esempio funzionante di un subclass su QSortFilterProxyModel che gestisca l&#8217;inserimento di colonne&#8230;

	Se aggiungo 3 al column count (override al metodo columnCount) mi compaiono 3 nuove colonne ma ovviamente in coda alla lista e a me servirebbe inserirle tra quelle preesistenti.
Altre soluzioni sono bene accette se non devo riscrivere tutto :)

	Grazie in anticipo!]]></description>
            <guid isPermaLink="false">bc356b00f4291e2f1da0ed9a9443e9da</guid>
            <pubDate>Sat, 07 Apr 2012 16:54:46 GMT</pubDate>
        </item>
  
        <item>
            <title>[Qt Creator] E possibile aggiungere un linguaggio?</title>
            <link>http://qt-project.org/forums/viewthread/15742</link>
            <author>ifrit_prog</author>
            <description><![CDATA[Salve a tutti

	Come da titolo vorrei sapere se e&#8217; possibile aggiungere un linguaggio definito dall&#8217;utente, nel senso che vorrei poter decidere anche le regole della sintassi in modo che l&#8217;IDE mi segnali eventuali errori.

	Vi dico subito che vorrei configurare l&#8217;IDE per scriverci software destinati al compilatore SDCC [sdcc.sourceforge.net]

	Sapete se è possibile fare una cosa simile?
Se si, cosa dovrei fare?

	Grazie in anticipo per l&#8217;eventuale risposta =)]]></description>
            <guid isPermaLink="false">f3d0cc5835ee285872e5275e8a7b1479</guid>
            <pubDate>Sat, 24 Mar 2012 16:58:07 GMT</pubDate>
        </item>
  
        <item>
            <title>Form</title>
            <link>http://qt-project.org/forums/viewthread/15551</link>
            <author>Renzovic</author>
            <description><![CDATA[Salve, ho un problemino, non riesco a creare una nuova form in qt creator.

	faccio:
// Classe Libro
&amp;nbsp;
Libro libro;
libro.show&#40;&#41;;

Ma in simulazione nokia c7 non funge.

	Qualcuno puo&#8217; aiutarmi?]]></description>
            <guid isPermaLink="false">0a9aa39f4cbd7635fbbcdd3634a88987</guid>
            <pubDate>Mon, 19 Mar 2012 14:43:18 GMT</pubDate>
        </item>
  
        <item>
            <title>QTcpSocket &amp; QAudioInput</title>
            <link>http://qt-project.org/forums/viewthread/15528</link>
            <author>aleskandro</author>
            <description><![CDATA[Salve a tutti, in un programma che permette di comunicare tra un pc ed un altro via socket ho la necessità di far arrivare l&#8217;audio catturato dal microfono di un pc ad un altro.
Dato che gia uso, per altri tipi di operazioni, QTcpSocket, mi chiedevo se riuscissi, ad utilizzarlo per trasmettere l&#8217;audio con QAudioInput.
Così ho provato.
void Server::makeStream&#40;&#41; &#123;
&amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; QAudioInput* audio;
&amp;nbsp; &amp;nbsp; QAudioFormat format;
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; format.setFrequency&#40;8000&#41;;
&amp;nbsp; &amp;nbsp; format.setChannels&#40;1&#41;;
&amp;nbsp; &amp;nbsp; format.setSampleSize&#40;8&#41;;
&amp;nbsp; &amp;nbsp; format.setCodec&#40;&amp;quot;audio/pcm&amp;quot;&#41;;
&amp;nbsp; &amp;nbsp; format.setByteOrder&#40;QAudioFormat::LittleEndian&#41;;
&amp;nbsp; &amp;nbsp; format.setSampleType&#40;QAudioFormat::UnSignedInt&#41;;
&amp;nbsp;
&amp;nbsp; &amp;nbsp; QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice&#40;&#41;;
&amp;nbsp; &amp;nbsp; if &#40;!info.isFormatSupported&#40;format&#41;&#41; &amp;nbsp;&#123;
&amp;nbsp; &amp;nbsp; qWarning&#40;&#41;&amp;lt;&amp;lt;&amp;quot;default format not supported try to use nearest&amp;quot;;
&amp;nbsp; &amp;nbsp; format = info.nearestFormat&#40;format&#41;;
&amp;nbsp; &amp;nbsp; &#125;
&amp;nbsp;
&amp;nbsp; &amp;nbsp; audio = new QAudioInput&#40;format, this&#41;;
&amp;nbsp; &amp;nbsp; this&#45;&amp;gt;ToSocket&#40;&amp;quot;Listen Me&amp;quot;&#41;;
&amp;nbsp; &amp;nbsp; audio&#45;&amp;gt;start&#40;this&#45;&amp;gt;SocketServer&#41;;
&#125;

Beh, pare che il server cominci a mandare dati ma adesso mi sfugge come posso farli leggere al client, per salvarli in un file magari.
Ho provato questo:
void Client::readSocket&#40;&#41;
&#123;
&amp;nbsp; &amp;nbsp; QDataStream in&#40;Socket&#41;;
&amp;nbsp; &amp;nbsp; in.setVersion&#40;QDataStream::Qt_4_0&#41;;
&amp;nbsp; &amp;nbsp; if &#40;audioincoming&#41;
&amp;nbsp; &amp;nbsp; &#123;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; QFile f;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.setFileName&#40;&amp;quot;/tmp/test.wav&amp;quot;&#41;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.open&#40; QIODevice::Append &#41;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; in &amp;gt;&amp;gt; f;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.close&#40;&#41;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&amp;nbsp; &amp;nbsp; &#125;
&#125;

Ma non posso usare l&#8217;operatore &amp;gt;&amp;gt;.

	Come potrei risolvere?]]></description>
            <guid isPermaLink="false">f9ba63464414bce0f7423afd4d030c32</guid>
            <pubDate>Sun, 18 Mar 2012 19:31:18 GMT</pubDate>
        </item>
  
        <item>
            <title>Classe ritorna sempre vero</title>
            <link>http://qt-project.org/forums/viewreply/78527</link>
            <author>Renzovic</author>
            <description><![CDATA[Ok, grazie a tutti, problema risolto!!!]]></description>
            <guid isPermaLink="false">985a84b8767a590fc01a05b8ecfbf3d3</guid>
            <pubDate>Tue, 13 Mar 2012 15:13:14 GMT</pubDate>
        </item>
  

  </channel>
</rss>
