<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>eduardofleury.com</title>
	<atom:link href="http://blog.eduardofleury.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eduardofleury.com</link>
	<description>Thoughts, shuffled...</description>
	<lastBuildDate>Mon, 12 Dec 2011 03:44:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Using Nokia N8 to make SIP calls over 3G and WiFI</title>
		<link>http://blog.eduardofleury.com/archives/2010/10/123/</link>
		<comments>http://blog.eduardofleury.com/archives/2010/10/123/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 20:39:18 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[eduardo fleury]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Inphonex]]></category>
		<category><![CDATA[N8]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Settings]]></category>
		<category><![CDATA[SIP]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=123</guid>
		<description><![CDATA[Hi there, I&#8217;ve been playing with the new Nokia N8 (Symbianˆ3) and was able to use it as a softphone to make and receive VoIP calls using my default SIP provider. As the setup is not that straightforward, I&#8217;m sharing the steps here. Installing SIP VoIP Settings The first non-obvious thing is that the N8, [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there,</p>
<p>I&#8217;ve been playing with the new Nokia N8 (Symbianˆ3) and was able to use it as a softphone to make and receive VoIP calls using my default SIP provider. As the setup is not that straightforward, I&#8217;m sharing the steps here.</p>
<p><strong>Installing SIP VoIP Settings</strong></p>
<p>The first non-obvious thing is that the N8, as well as other S60 v5 and v3 devices like 5800 and N85, doesn&#8217;t come with the settings applications pre-installed. Without that, the built-in SIP settings is pretty much useless for our purpose.</p>
<p>So, rush to <a href="http://www.forum.nokia.com/info/sw.nokia.com/id/d476061e-90ca-42e9-b3ea-1a852f3808ec/SIP_VoIP_Settings.html" target="_blank">Forum Nokia</a> and get / install the settings application. The new version is compatible with Symbianˆ3 devices so it fits nicely the Nokia N8.</p>
<p><strong>Creating a SIP profile<br />
</strong></p>
<p>To actually use your VoIP provider account you will need to setup SIP proxies, user name, password, codecs, etc. Nokia has split this rigmarole of settings into two separate things which it calls <em>SIP Settings</em> and <em>VoIP services</em>. So you&#8217;ll need to create both. Let&#8217;s start with the former.</p>
<p>Start by opening the Menu and going into:</p>
<p><em>Settings &gt; Connectivity &gt; Admin Settings &gt; Net Settings &gt; Advanced VoIP settings &gt; SIP settings<br />
</em></p>
<p><a href="http://blog.eduardofleury.com/wp-content/uploads/2010/10/DSC_5121.jpg"><img class="alignnone size-full wp-image-126" title="DSC_5121" src="http://blog.eduardofleury.com/wp-content/uploads/2010/10/DSC_5121.jpg" alt="" width="320" height="482" /></a></p>
<p>If the above settings page is not available, then check the previous step.</p>
<p>Now create a new profile by going into <em>Options &gt; New SIP profile</em></p>
<p>Here you&#8217;ll need to fill in the connection details as the SIP proxy address and login information. In my case I use Inphonex and they provide <a href="http://www.inphonex.com/support/mobile-nokia-e61-configuration.php" target="_blank">detailed information</a> on how to do that. Your experience may vary but your provider should require similar settings, basically is to set Proxy and Registrar servers.</p>
<p><strong>Creating VoIP service</strong></p>
<p>Once the previous is done, go up one level and then go into <em>VoIP services</em></p>
<p>Create a new service <em>Options &gt; New service</em> and point it to the SIP profile you just created.</p>
<p><strong>[Optional] Enabling use of VoIP over 3G</strong></p>
<p>If you only intent to use WiFi to make VoIP calls, then skip this step, otherwise click the name of the VoIP service you just created and go into <em>Profile settings</em>.</p>
<p>Now search one configuration flag called &#8220;AWCDMA&#8221; (Allow WCDMA), change that to On.</p>
<p><a href="../wp-content/uploads/2010/10/DSC_5122.jpg"><img title="DSC_5122" src="../wp-content/uploads/2010/10/DSC_5122.jpg" alt="" width="320" height="482" /></a></p>
<p><strong>Testing</strong></p>
<div style="display: none">Find more about how to make <a href="http://phone-cards.olnevhost.net/"><b>cheap calls to india</b></a>.</div>
<p>Go to your phonebook, there should be a new tab on the top. Between Contacts and Groups, a tab with the globe and a phone. Click it and you should be able to click a Sign-in option (if it&#8217;s not signed-in already). To confirm that, check whether this phone+world icon is shown at the top-right corner of the status-bar, close to the Bluetooth and WiFi icons (see Image).</p>
<p><a href="http://blog.eduardofleury.com/wp-content/uploads/2010/10/DSC_5120.jpg"><img class="alignnone size-full wp-image-130" title="DSC_5120" src="http://blog.eduardofleury.com/wp-content/uploads/2010/10/DSC_5120.jpg" alt="" width="320" height="482" /></a></p>
<p><a href="http://blog.eduardofleury.com/wp-content/uploads/2010/10/DSC_5125.jpg"><img class="alignnone size-full wp-image-128" title="DSC_5125" src="http://blog.eduardofleury.com/wp-content/uploads/2010/10/DSC_5125.jpg" alt="" width="320" height="482" /></a></p>
<p>Now open the dialer, dial something and click <em>Options -&gt; Call -&gt; Your_SIP_Service_name</em></p>
<p>Should be that <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Hopefully this post if useful for you, comments are always appreciated. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2010/10/123/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Styles for Qt and KDE: A new approach</title>
		<link>http://blog.eduardofleury.com/archives/2010/10/116/</link>
		<comments>http://blog.eduardofleury.com/archives/2010/10/116/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 18:32:46 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=116</guid>
		<description><![CDATA[At this year&#8217;s Akademy I&#8217;ve presented a talk that summarizes a new way of styling C++ widgets in Qt and KDE. Now checkout the companion paper with in deep explanations of the ideas proposed there. Get it HERE]]></description>
			<content:encoded><![CDATA[<p>At this year&#8217;s Akademy I&#8217;ve presented a talk that summarizes a new way of styling C++ widgets in Qt and KDE. Now checkout the companion paper with in deep explanations of the ideas proposed there.</p>
<p>Get it <a title="Download paper" href="http://blog.eduardofleury.com/wp-content/uploads/2010/10/EduardoFleury_StylesForQtAndKDE.pdf">HERE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2010/10/116/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapping mouse position to angles (QtQuick example)</title>
		<link>http://blog.eduardofleury.com/archives/2010/04/108/</link>
		<comments>http://blog.eduardofleury.com/archives/2010/04/108/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 20:53:02 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[angle]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[coordinates]]></category>
		<category><![CDATA[diagram]]></category>
		<category><![CDATA[eduado]]></category>
		<category><![CDATA[eduardo fleury]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[qml]]></category>
		<category><![CDATA[qtquick]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=108</guid>
		<description><![CDATA[Hi there! This post is to share with you something I hacked these days. The use case Image you are writing a widget or a piece of an application interface and you want to rotate something based on a mouse click. For instance, you may have a widget that looks like a rotating knob, or [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there! This post is to share with you something I hacked these days.</p>
<h3><strong>The use case</strong></h3>
<p>Image you are writing a widget or a piece of an application interface and you want to rotate something based on a mouse click. For instance, you may have a widget that looks like a rotating knob, or a round analogue gauge.</p>
<p>For this post, let&#8217;s use a car dashboard speedometer. What I want here is to click somewhere on the gauge and have the needle rotated towards the current mouse position. Check this video of how it should work.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Qi6HOu7wWj4&amp;hl=en_US&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Qi6HOu7wWj4&amp;hl=en_US&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>The problem</h3>
<p>In Qt, rotating a widget is easy in the context of QtQuick or QGraphicsView, just define the &#8220;rotation&#8221; property to the desired angle and you are all set. The problem here is to find out <span style="text-decoration: underline;"><strong>what the desired angle is.</strong></span></p>
<p>Here I want to find out which is the angle formed between a given mouse position and centre of the gauge, or the origin of the needle rotation. Getting the mouse position is easy in QtQuick, simply watch the &#8220;mouseX&#8221; and &#8220;mouseY&#8221; properties of a MouseArea. But what about converting that to an &#8220;angle&#8221; ?</p>
<p>In mathematical terms what I want is to convert the mouse position from linear coordinates (X,Y pair) to circular coordinates (angle, radius pair) with the centre of the gauge being the origin of my plane. But designers using QtQuick really don&#8217;t want to deal with that.</p>
<h3>The solution</h3>
<p>I made a Qt class meant to be used as a &#8220;model&#8221; or &#8220;helper&#8221; for both C++ and QtQuick applications. This class hides the trigonometry required for that conversion by exporting a set of properties, namely:</p>
<ul>
<li>originX</li>
<li>originY</li>
<li>x</li>
<li>y</li>
<li>angle</li>
<li>radius</li>
</ul>
<p>So how would we use it in our example?</p>
<ol>
<li>Set &#8220;<strong>originX</strong>&#8221; and &#8220;<strong>originY</strong>&#8221; to the centre of the gauge. That&#8217;s the origin of the needle, right?</li>
<li>Set &#8220;<strong>x</strong>&#8221; and &#8220;<strong>y</strong>&#8221; to the current mouse position. In QML that would be &#8220;x: mouseArea.mouseX&#8221; and &#8220;y: mouseArea.mouseY&#8221;.</li>
<li>Read the value of &#8220;<strong>angle</strong>&#8220;. In QML that would be something like  &#8220;needleRotation.angle: angleModel.angle&#8221;</li>
</ol>
<p>Then QtQuick data binding system will handle everything else. Every time the mouse moves, the properties &#8220;<strong>x</strong>&#8221; and &#8220;<strong>y</strong>&#8221; will be updated, the model will then recalculate the values of &#8220;<strong>angle</strong>&#8221; and &#8220;<strong>radius</strong>&#8221; causing the needle to update itself.</p>
<p>Below you can see a diagram of that behaviour. Note that the opposite also works, that is, once I explicitly set an &#8220;<strong>angle</strong>&#8221; and &#8220;<strong>radius</strong>&#8221; in the model, the values of &#8220;<strong>x</strong>&#8221; and &#8220;<strong>y</strong>&#8221; are automatically updated.</p>
<div id="attachment_111" class="wp-caption alignnone" style="width: 910px"><img class="size-full wp-image-111" title="AngleModel" src="http://blog.eduardofleury.com/wp-content/uploads/2010/04/AngleModel.png" alt="Relationship between AngleModel and different coordinates" width="900" height="506" /><p class="wp-caption-text">Relationship between AngleModel and different coordinates</p></div>
<h3>The Source</h3>
<p>To grab the code go to<strong> <a title="Qt Components Gitorious" href="http://gitorious.org/qt-components/qt-components/commits/master" target="_blank">Qt Components Gitorious</a> </strong>and check:</p>
<ul>
<li>examples/clickable-dial</li>
<li>examples/angle-model</li>
</ul>
<p>Hope you enjoy it. Comments are always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2010/04/108/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arbitrary and/or animated opacity masks to QGraphicsItems with QGraphicsEffect</title>
		<link>http://blog.eduardofleury.com/archives/2010/04/102/</link>
		<comments>http://blog.eduardofleury.com/archives/2010/04/102/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 14:09:47 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=102</guid>
		<description><![CDATA[Last week I dropped by this neat image slider and was wondering how could that be done in Qt (C++ or Quick). And basically what we need is an animated opacity mask, or &#8220;clipper&#8221;. While QGraphicsView and QML already provide rectangular clipping, it does not support clipping to arbitrary forms and opacity, something we would [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I dropped by this <a href="http://nivo.dev7studios.com/">neat image slider</a> and was wondering how could that be done in Qt (C++ or Quick). And basically what we need is an animated opacity mask, or &#8220;clipper&#8221;.</p>
<p>While QGraphicsView and QML already provide rectangular clipping, it does not support clipping to arbitrary forms and opacity, something we would need in order to implement the &#8220;moving bars&#8221; transition used in the image slider I mentioned above.</p>
<p>I expected QGraphicsEffect to be suitable for that usecase but I had no experience with it, so I decided to try and make a proof of concept effect class that would clip an arbitrary QGraphicsItem to the shape of a bouncing circle.</p>
<p>A more useful class would be one that received as parameter a mask image instead of the &#8220;hard-coded&#8221; bouncing circle, but I&#8217;ll let that as an exercise to those reading <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Code is attached, I complied against Qt 4.6 and it works fine. Just run:</p>
<p><span style="font-family: Courier;"># qmake<br />
# make<br />
# ./effect</span></p>
<p>l class would be one that received as parameter a mask image instead of the &#8220;hard-coded&#8221; bouncing circle, but I&#8217;ll let that as an exercise to those read.</p>
<p><strong><a href="http://blog.eduardofleury.com/wp-content/uploads/effect.tgz">Download and try it here</a></strong>.</p>
<p><strong>UPDATE</strong>:  If your default graphics system is not raster, ie. if you get errors like:</p>
<p>QPainter::setCompositionMode: Blend modes not supported on device</p>
<p>Try running the example as follows:<br />
<span style="font-family: Courier;"># ./effect -graphicssystem raster</span></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 69px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">QPainter::setCompositionMode: Blend modes not supported on device</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2010/04/102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Foi lançado o Qt 4.6 !</title>
		<link>http://blog.eduardofleury.com/archives/2009/12/98/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/12/98/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 16:15:34 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (pt)]]></category>
		<category><![CDATA[anchorlayout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[oslo]]></category>
		<category><![CDATA[Qt 4.6]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=98</guid>
		<description><![CDATA[Está disponível desde hoje cedo a versão 4.6.0 do Qt com diversas novidades, como diz o post oficial dos nossos amigos do Qt. A nova versão está disponível para download em qt.nokia.com, em versões pré compiladas para Windows, MacOS e Symbian, além do código fonte (para todas as plataformas). Usuários Linux podem baixar e compilar [...]]]></description>
			<content:encoded><![CDATA[<p>Está disponível desde hoje cedo a versão 4.6.0 do Qt com diversas novidades, como diz o <a href="http://labs.trolltech.com/blogs/2009/12/01/qt-460-released-early-due-to-good-behaviour/" target="_blank">post oficial</a> dos nossos amigos do Qt.</p>
<p>A nova versão está disponível para download em <a title="Qt" href="http://qt.nokia.com/" target="_blank">qt.nokia.com</a>, em versões pré compiladas para Windows, MacOS e Symbian, além do código fonte (para todas as plataformas). Usuários Linux podem baixar e compilar o fonte ou então instalar usando os procedimentos normais de cada distribuição, tão logo estejam disponíveis os pacotes desta versão.</p>
<p>Entre as novidades dessa versão estão:</p>
<ul>
<li>API de Animação (QAnimation)</li>
<li>Máquina de Estados (QStateMachine)</li>
<li>Novo layout (QGraphicsAnchorLayout)</li>
<li>Suporte para a plataforma Symbian, o que permite que o Qt rode em dezenas de milhões de novos aparelhos <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>A documentação atualizada com todas as novas classes está pronta também, ou pelo Qt Assistant ou <a title="Qt Docs" href="http://qt.nokia.com/doc/4.6/index.html" target="_blank">online</a>.</p>
<p>Outro fato marcante desta versão é o fato de ser a primeira após a abertura do repositório Git do Qt, e assim marca uma integração cada vez maior com a comunidade. Nesse sentido esperamos que todos usem, testem e mandem opiniões e reports de eventuais bugs, para que as próximas versões sejam cada vez melhores!</p>
<p>Para ilustrar um pouco, <a title="Qt 4.6.0 video" href="http://www.youtube.com/watch?v=PCx8RfNhhXk" target="_blank">um vídeo</a> feito pelo pessoal aqui do openBossa mostrando o 4.6.0 rodando em diversos aparelhos!</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/PCx8RfNhhXk&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PCx8RfNhhXk&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p>Para finalizar, algumas fotos do time do Qt.</p>
<p>Em Oslo</p>
<p><a title="Oslo Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/oslo1.jpg"><img width=340 height=255 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/oslo1.jpg" alt="Oslo Team" /></a></p>
<p>Em Berlin</p>
<p><a title="Berlin Development Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/berlin.jpg"><img width=340 height=192 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/berlin.jpg" alt="Berlin Development Team" /></a></p>
<p>Em Brisbane</p>
<p><a title="Brisbane Development Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/brisbane.jpg"><img width=340 height=255 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/brisbane.jpg" alt="Brisbane Development Team" /></a></p>
<p>Em Munich</p>
<p><a title="Munich Development Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/munich.jpg"><img width=340 height=96 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/munich.jpg" alt="Munich Development Team" /></a></p>
<p>Parabéns pessoal!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/12/98/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O QGraphicsAnchorLayout</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/91/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/91/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 15:42:00 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (pt)]]></category>
		<category><![CDATA[anchor layout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[qgal]]></category>
		<category><![CDATA[recife]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=91</guid>
		<description><![CDATA[No último artigo mencionei que o QGraphicsLayout, a ser lançado no Qt 4.6, já está disponível no repositório público do Qt. Hoje gostaria de dar uma visão geral sobre como este novo layout funciona e sobre o porquê de estarmos tão animados com isso. Para tal, vou falar um pouco sobre: os layouts que já [...]]]></description>
			<content:encoded><![CDATA[<p>No último artigo mencionei que o QGraphicsLayout, a ser lançado no Qt 4.6, já está disponível no repositório público do Qt.</p>
<p>Hoje gostaria de dar uma visão geral sobre como este novo layout funciona e sobre o porquê de estarmos tão animados com isso.</p>
<p>Para tal, vou falar um pouco sobre: os layouts que já existiam no Qt, o uso do Anchor Layout e finalmente, os problemas que são melhores resolvidos por ele. De agora em diante assuma que estou escrevendo sobre o universo QGraphicsView e assim, onde ler &#8220;widget&#8221; ou &#8220;layout&#8221;, entenda que me refiro a QGraphicsWidgets ou QGraphicsLayouts.</p>
<p><strong>QGraphicsLayouts existentes<br />
</strong></p>
<p>Até o Qt 4.5, estavam disponíveis os layouts Linear e de Grid. Com eles, como seus nomes indicam, usuários poderiam ter seus widgets alinhados lado a lado ou em formato de tabela, com widgets ocupando uma ou mais células.</p>
<p>No entanto, não era possível organizar os itens para que ficassem fora da tela ou que se sobrepusessem, total ou parcialmente. Além disto, para obter o resultado desejado em alguns casos, era necessário utilizar diversos layouts encadeados.</p>
<p><strong>O conceito do Anchor Layout<br />
</strong></p>
<p>Layouts anteriores funcionavam assim: o layout Linear pedia que você adicionasse items ao layout em uma determinada seqüência e assim os itens seriam arranjados lado a lado (ou um sobre o outro); no caso do layout de Grid o conceito era similar, mas com itens associados a índices X,Y para representar a linha e coluna onde eles deveriam ser inseridos.</p>
<p>O Anchor Layout quebra com este paradigma no sentido de que não existe um conceito pré-definido de como os itens devem ser dispostos. A posição final de cada item é totalmente dependente de como você cria as âncoras. Em outras palavras, o Anchor Layout é um layout muito, muito <em>flexível</em>.</p>
<p>Apesar da maioria dos layouts serem flexíveis até certo ponto, e permitirem que se configure parâmetros como o espaçamento entre itens ou as margens, o Anchor Layout eleva a flexibilidade a um novo patamar. Foi também um dos nossos objetivos, fazer com que o processo de criação do layout fosse algo simples. Não queríamos expor centenas de parâmetros abstratos ao usuário, ao invés disto, nós  queríamos disponibilizar uma conceito e uma API de alto-nível. Além de fazer com que seu uso seja mais gratificante, isto facilita a tarefa de transformar em código C++, as idéias e a maneira de pensar dos designers de interfaces. E é assim que surgiram <em>as âncoras</em>.</p>
<p>Neste layout, cada item possui seis pontos de ancoragem, que são esquerda, direita, topo, base e os centros horizontal e vertical. O usuário por sua vez, é responsável por conectar os pontos de ancoragem de diferentes itens entre eles, e com os pontos de ancoragem do próprio layout. Essas conexões são feitas através das tais âncoras, que têm tamanhos bem definidos.</p>
<p>Depois, com base em:</p>
<p>- as âncoras criadas,<br />
- os tamanhos mínimo, recomendado e máximo de cada item, e<br />
- o tamanho do layout propriamente dito.</p>
<p>o layout calcula as geometrias apropriadas para cada um dos widgets.</p>
<p><strong>Casos de uso do Anchor Layout no mundo real</strong></p>
<p>Aqui no openBossa nós temos trabalhado no desenvolvimento de interfaces ricas há um bom tempo, e foi com essa experiência como bagagem que começamos a contribuir com o pessoal do Qt no desenvolvimento do QGraphicsAnchorLayout.</p>
<p>A seguir você irá encontrar alguns dos nossos casos de uso que não eram bem tratados pelos layouts existentes e que são bem mapeados para âncoras.</p>
<p><em>Transição entre telas</em></p>
<p>Nós freqüentemente precisamos fazer uma transição entre duas telas de uma mesma aplicação. Imagine que o usuário executa alguma ação que causar o sumiço da tela atual para que uma nova apareça.</p>
<p>Em uma aplicação de interface rica nós provavelmente gostaríamos de animar tal transição. Duas das alternativas seriam tornar transparente ou embaçar a tela corrente até que a que está por vir se faça visível. Para alcançar tal efeito, nós precisamos que as duas telas ocupem a mesma posição na tela, sendo que a mais velha deverá estar na frente (índice Z maior). Em seguida, basta aplicar o efeito à tela que está na frente, por exemplo mudar sua opacidade, e pronto, temos o efeito!</p>
<p>Então, como poderíamos usar um layout comum para fazer um widget (a tela nova) ocupar o mesmo espaço que outro (a tela velha)? Não dava. Agora com âncoras, basta ancorar os lados de uma tela aos lados da outra (direita com direita, topo com topo, etc) e pronto!</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-87" title="AnchorLayout_Swallow" src="http://blog.eduardofleury.com/wp-content/uploads/2009/09/swallow.png" alt="Usage of AnchorLayout to set two swallows on the same place" width="320" height="348" /><p class="wp-caption-text">Uso do AnchorLayout para colocar duas telas no mesmo lugar.</p></div>
<p><em>Items fora da tela</em></p>
<p>Outro &#8220;truque&#8221; que usamos na animação de interfaces é fazer um item &#8220;entrar&#8221; ou &#8220;sair&#8221; da tela. Por exemplo, imagine uma barra de ferramentas no topo da tela que desliza pra dentro da tela e depois pra fora. A idéia aqui é criar dois estados (usando QStates talvez) onde a barra está dentro da tela em um deles,. e fora no outro.</p>
<p>Mais uma vez, com os layouts comuns não poderíamos criar o estado &#8220;fora-da-tela&#8221;. Com âncoras, basta ancorar a base da barra ao topo do layout, por conseqüência a barra será colocada logo acima do layout, pronta para entrar na tela quando necessário.</p>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 333px"><img class="size-full wp-image-88" title="AnchorLayout_Toolbar" src="http://blog.eduardofleury.com/wp-content/uploads/2009/09/toolbar.png" alt="Usage of AnchorLayout to set a toolbar on or off-screen." width="323" height="404" /><p class="wp-caption-text">Uso do AnchorLayout para colocar um widget fora da tela.</p></div>
<p><em>Disposição orgânica</em></p>
<p>Existem também aqueles casos onde os designers criam um protótipo de tela com diversos itens arranjados de maneira disforme ou &#8220;orgânica&#8221;. Na maioria destes casos não é prático (ou possível) ter de usar diversos layouts encadeados para definir tal arranjo. No entanto, com um único Anchor Layout, todos os itens podem ser organizados de maneira precisa.</p>
<p><strong>Experimente!<br />
</strong></p>
<p>Existem outras situações não mencionadas onde um layout tão flexível também é útil. Eu acredito no entanto que os exemplos que coloquei aqui são suficientes para mostrar o tipo de problema que estamos tentando resolver. Por favor, experimente e nos diga o que achou. Todo o tipo de opinião é realmente bem vindo,  quanto à forma de uso, performance, API, recursos e assim por diante. Tudo será levado em conta para que vocês tenham uma boa ferramenta nova para usar no Qt 4.6.</p>
<p>Aproveitem <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/91/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The QGraphicsAnchorLayout</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/86/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/86/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 23:11:39 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[anchorlayout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[linear programming]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[qgal]]></category>
		<category><![CDATA[qgraphicsanchorlayout]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[rich UI]]></category>
		<category><![CDATA[simplex]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=86</guid>
		<description><![CDATA[In the last post I mentioned that the new QGraphicsLayout, to be released in Qt 4.6, is already available in the public Qt git repository. Now I&#8217;d like to give some overview of how it works and why we&#8217;re so excited about it. To do that I&#8217;ll talk about the layouts that already existed in [...]]]></description>
			<content:encoded><![CDATA[<p>In the last post I mentioned that the new QGraphicsLayout, to be released in Qt 4.6, is already available in the public Qt git repository.</p>
<p>Now I&#8217;d like to give some overview of how it works and why we&#8217;re so excited about it.</p>
<p>To do that I&#8217;ll talk about the layouts that already existed in Qt, the Anchor Layout basic usage and finally, the situations that are better handled by the latter. From now on assume I&#8217;m talking about the QGraphicsView framework and where you read &#8220;widget&#8221; or &#8220;layout&#8221;, understand that I refer to QGraphicsWidgets and QGraphicsLayouts.</p>
<p><strong>Existing QGraphicsLayouts</strong></p>
<p>As of Qt 4.5, the exiting layouts available were the Linear and the Grid layouts. With those, as their names imply, users could have their widgets arranged side-by-side or in a spreadsheet-like fashion, with support for merged cells included.</p>
<p>It was not possible however to lay items out of the screen or overlap them, total or partially. Besides that, some cases would require several layouts to be nested in order to achieve the desired result.</p>
<p><strong>The Anchor Layout concept</strong></p>
<p>Previous layouts work like this: the linear layout would require you to add items to the layout in a given sequence and then those would be arranged side by side (or one on top of the other); in the grid layout the concept is similar, but items are now associated to X,Y indexes to represent the row and column where they should be inserted.</p>
<p>The Anchor Layout breaks with this paradigm in the sense there is no pre-defined concept of how should the items be arranged. The final position of each item is totally dependent on how you set the anchors. In other words, the anchor layout is a very, very <em>flexible</em> layout.</p>
<p>While most layouts are flexible to some extent and allow you to configure parameters like spacing between items or margins, the Anchor Layout brings flexibility to a new level. It was also our goal to make the setup process something easy. We didn&#8217;t want to expose hundreds of abstract parameters to the user, instead, we wanted to provide a high-level API and concept. Besides making the coding more rewarding, that would make it easier to translate into C++ code, the  UI designers ideas and way of thinking. That&#8217;s what<em> the anchors</em> are about.</p>
<p>In this layout, each item has six anchorage points, which are Left, Right, Top, Bottom and the Horizontal and Vertical centers. The user is then responsible for connecting the anchorage points of different items to the others, and to the anchorage points of the layout itself. These connections are made through the use of the so called Anchors, that have well defined sizes.</p>
<p>Then, based on:</p>
<p>- the anchors created,<br />
- the size hints of each item, and<br />
- the size of the layout itself</p>
<p>the layout engine calculates the appropriate  geometry of each widget.</p>
<p><strong>Real world Anchor Layout use cases</strong></p>
<p>Here at openBossa we have been involved on the development of rich-UI applications for long, and it was with that experience in mind that we started contributing with the guys from Qt on the development of the QGraphicsAnchorLayout.</p>
<p>Bellow you will find a few use cases of ours that were not handled by existing layouts and work fine with anchors.</p>
<p><em>Transition between screens</em></p>
<p>We often want to make a transition between two screens of the same application. Imagine the user performs an action that should hide the current screen and show another one.</p>
<p>In a rich UI application we probably want to animate such transition, one of the alternatives is to apply a fade-out or blur to the current screen until the new screen is seen. To achieve that, we want both screens to occupy the same position on the screen, the old one being in front of the new one (higher Z value). Then it&#8217;s just a matter of changing the opacity of the screen on the front and voilà, we have the effect.</p>
<p>So, how do we use a standard layout to make one widget (next screen) occupy the same position as another one (current screen)? We couldn&#8217;t do that with existing layout. With anchor is just a matter of anchoring both screens edges to the layout edges (right of item to right of layout, left to left, and so forth).</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-87" title="AnchorLayout_Swallow" src="http://blog.eduardofleury.com/wp-content/uploads/2009/09/swallow.png" alt="Usage of AnchorLayout to set two swallows on the same place" width="320" height="348" /><p class="wp-caption-text">Usage of AnchorLayout to set two swallows on the same place.</p></div>
<p><em>Off-screen items</em></p>
<p>Another common trick used in UI animations is to have an off-screen item get &#8220;inside&#8221;  the screen or vice-versa. For instance, imagine a toolbar on the top of the screen that shows or hides itself in an animated way, like &#8220;walking into&#8221; or &#8220;out&#8221; of the screen. The idea here is to have two states (QStates maybe?) where the toolbar widget is on-screen in one of them, and off-screen in the other.</p>
<p>Again, with standard layouts we could not create this &#8220;off-screen&#8221; state. With anchors it&#8217;s just a matter of anchoring for instance, the bottom of the toolbar to the top of the layout, thus, the toolbar will sit right above the layout, ready to enter the screen (in an animated way) when necessary.</p>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 333px"><img class="size-full wp-image-88" title="AnchorLayout_Toolbar" src="http://blog.eduardofleury.com/wp-content/uploads/2009/09/toolbar.png" alt="Usage of AnchorLayout to set a toolbar on or off-screen." width="323" height="404" /><p class="wp-caption-text">Usage of AnchorLayout to set a toolbar on or off-screen.</p></div>
<p><em>Organic setup</em></p>
<p>There are also those cases where we have several items arranged on the screen in a very organic way as drawn by the UI designers. Often it&#8217;s not practical (or possible) to define that arrangement in terms of several  nested layouts. However, with a single Anchor Layout, all items can be arranged precisely.</p>
<p><strong>Try it</strong></p>
<p>There are other situations where such a flexible layout is helpful, however I hope the cases above exemplify the kind of problem we are trying to solve. Please, give it a try, let us know of your impressions. We really appreciate all kinds of feedback, either on usage, performance, API, features, and so forth. All of these will be taken into account so you can have a nice new tool ready for use in Qt 4.6.</p>
<p>Enjoy <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/86/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Anchor Layout disponível no repositório do Qt 4.6</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/83/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/83/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 22:18:45 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (pt)]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=83</guid>
		<description><![CDATA[Este post é para avisá-los que o layout de âncoras do Qt, o QGraphicsAnchorLayout,  está disponível no repositório do Qt 4.6. Para olhar o código fonte ou fazer o download de um tarball do código fonte, visite o Gitorious do Qt. Como o nome indica, a versão atual só é compatível com o canvas Graphics [...]]]></description>
			<content:encoded><![CDATA[<p>Este post é para avisá-los que o layout de âncoras do Qt, o QGraphicsAnchorLayout,  está disponível no repositório do Qt 4.6.</p>
<p>Para olhar o código fonte ou fazer o download de um tarball do código fonte, visite o <a href="http://qt.gitorious.org/qt/qt/commits/4.6" target="_blank">Gitorious do Qt</a>.</p>
<p>Como o nome indica, a versão atual só é compatível com o canvas Graphics View, ou seja é um QGraphicsLayout, e não um QLayout. Esta versão ainda está em desenvolvimento e possui defeitos conhecidos, especialmente quando os itens são organizados de maneira impossível. No entato melhoras virão ao longo do próximo mês, podem esperar.</p>
<p>Enquanto a documentação não está pronta, veja a <a href="http://qt.gitorious.org/qt/qt/blobs/4.6/src/gui/graphicsview/qgraphicsanchorlayout.h" target="_blank">declaracão da classe</a> QGraphicsAnchorLayout para conhecer sua API. Logo que possível eu publicarei algum material explicando melhor o seu uso.</p>
<p>Como sempre, comentários são bem vindos!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anchor Layout available in Qt 4.6 repository</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/81/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/81/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 22:09:21 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[anchor layout]]></category>
		<category><![CDATA[anchorlayout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[qgal]]></category>
		<category><![CDATA[qgraphicsanchorlayout]]></category>
		<category><![CDATA[recife]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=81</guid>
		<description><![CDATA[This post is just to let you know that the Qt approach to Anchor Layouts, the QGraphicsAnchorLayout is available in the Qt 4.6 repository. To browse the source or download a tarball, visit Qt Gitorious. As the name implies, the current version is only available for the Graphics View Framework, ie. it is a QGraphicsLayout, [...]]]></description>
			<content:encoded><![CDATA[<p>This post is just to let you know that the Qt approach to Anchor Layouts, the QGraphicsAnchorLayout is available in the Qt 4.6 repository.</p>
<p>To browse the source or download a tarball, visit <a title="Qt 4.6 Gitorious" href="http://qt.gitorious.org/qt/qt/commits/4.6" target="_blank">Qt Gitorious.</a></p>
<p>As the name implies, the current version is only available for the Graphics View Framework, ie. it is a QGraphicsLayout, not a QLayout. The current version is still under development and still have know issues, specially with impossible arrangements of items. You can expect improvements through the next month though.</p>
<p>Check the QGraphicsAnchorLayout <a href="http://qt.gitorious.org/qt/qt/blobs/4.6/src/gui/graphicsview/qgraphicsanchorlayout.h" target="_blank">header</a> for its public API while documentation is not available. I&#8217;m going to post more about its usage soon as well.</p>
<p>Comments are always welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canola-like layout in Qt Kinetic</title>
		<link>http://blog.eduardofleury.com/archives/2009/04/69/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/04/69/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 22:17:15 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Canola]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[animated layouts]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[rich UI]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=69</guid>
		<description><![CDATA[Hi all, We&#8217;ve just uploaded a new video showing our latest animated layout example. You can check it at: OpenBossa&#8217;s Youtube Channel Or here: Rather than showing how to animate from one layout to another, this example shows how could a Qt user create his/her own custom layout that uses QGraphicsLayoutProxies internally to animate its [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>We&#8217;ve just uploaded a new video showing our latest animated layout example.</p>
<p>You can check it at:<br />
<a href=http://www.youtube.com/openbossa>OpenBossa&#8217;s Youtube Channel</a></p>
<p>Or here:<br />
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/eJcTBJaPRZg&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/eJcTBJaPRZg&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Rather than showing how to animate from one layout to another, this example shows how could a Qt user create his/her own custom layout that uses QGraphicsLayoutProxies internally to animate its items.</p>
<p>From the usage point of view, once the layout is ready, all one has to do is to add or remove widgets to the layout or resize it to see them animating to the right places.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/04/69/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

