<?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 &#187; Qt Labs Americas (pt)</title>
	<atom:link href="http://blog.eduardofleury.com/archives/category/qt_labs_america_pt/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eduardofleury.com</link>
	<description>Thoughts, shuffled...</description>
	<lastBuildDate>Sat, 01 May 2010 00:22:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<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>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>
	</channel>
</rss>
