<?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>Un principiante en las Artes Gráficas &#187; //</title>
	<atom:link href="http://www.pinelo.com/blog/tag/11/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pinelo.com/blog</link>
	<description>Una experiencia en un sector que nos envuelve... El blog personal de David Pinelo.</description>
	<lastBuildDate>Wed, 01 Dec 2010 09:05:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Qt: Sistema de propiedades&#8230;</title>
		<link>http://www.pinelo.com/blog/2008/08/05/qt-sistema-de-propiedades/</link>
		<comments>http://www.pinelo.com/blog/2008/08/05/qt-sistema-de-propiedades/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 10:06:48 +0000</pubDate>
		<dc:creator>David Pinelo</dc:creator>
				<category><![CDATA[Librerías Qt]]></category>
		<category><![CDATA[//]]></category>

		<guid isPermaLink="false">http://www.pinelo.com/blog/?p=40</guid>
		<description><![CDATA[Las librerías Qt proporcionan un sistema de propiedades similar al sistema de propiedades que ofrecen las VCL de Borland, por ejemplo. Sin embargo, mientras que otros fabricantes utilizan directivas de compilador para la definición de propiedades, Qt lo delega en su sistema de Meta Objetos (del que hablaré un día de estos). ¿Qué son las [...]]]></description>
			<content:encoded><![CDATA[<p>Las librerías Qt proporcionan un sistema de <em>propiedades</em> similar al sistema de propiedades que ofrecen las VCL de Borland, por ejemplo. Sin embargo, mientras que otros fabricantes utilizan directivas de compilador para la definición de propiedades, Qt lo delega en su sistema de Meta Objetos (del que hablaré un día de estos).</p>
<p>¿Qué son las propiedades? Imaginemos un objeto, (en Qt cualquier clase que implementa la directiva del sistema de Meta Objetos Q_OBJECT). El objeto puede ser un objeto a utilizar en la GUI, o bien cualquier otro tipo de objeto. Una propiedad viene a tener un comportamiento muy parecido a los atributos de la clase, pero dispone de ciertas características adicionales. La principal (o la que por el momento me ha resultado más útil), puede accederse a la propiedad sin conocer la propia clase que implementa el objeto en sí.</p>
<p><span id="more-40"></span></p>
<p>¿Qué significa eso de sin conocer la clase?</p>
<p>Veamos este código</p>
<pre>QComboBox *combo = new QComboBox;
QObject *miObjeto = combo;
int index = combo-&gt;currentIndex();  // Esto hace lo mismo que la sentencia de abajo
int index2 = miObjeto-&gt;property("currentIndex"); // Aqui, index2 tiene el mismo valor que index</pre>
<p>Es decir, accedo al atributo que me da el item seleccionado mediante "hardcode" con el método -&gt;currentIndex, o bien, con -&gt;property + un nombre que puedo leer de cualquier parte.</p>
<p>Imaginemos que de esta forma, podemos poblar todas las propiedades de un objeto (y por tanto sus atributos) a partir de un XML, que es básicamente lo que hacen las Qt con el QtDesigner...</p>
<p>¿Cómo se definen las propiedades? Mediante la macro..</p>
<p>p, li { white-space: pre-wrap; }</p>
<p style="margin: 0px; text-indent: 0px;"><!--StartFragment--><span style="background-color: #f1f1f1; font-family: 'Courier New,courier'; color: #000000;"> Q_PROPERTY(type name</span></p>
<pre style="margin: 0px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    READ getFunction</pre>
<pre style="margin: 0px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    [WRITE setFunction]</pre>
<pre style="margin: 0px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    [RESET resetFunction]</pre>
<pre style="margin: 0px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    [DESIGNABLE bool]</pre>
<pre style="margin: 0px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    [SCRIPTABLE bool]</pre>
<pre style="margin: 0px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    [STORED bool]</pre>
<pre style="margin: 0px 0px 12px; text-indent: 0px; font-family: 'Courier New,courier'; color: #000000; background-color: #f1f1f1;">                    [USER bool])</pre>
<p>Buscaré un ejemplito práctico para verlo... pero por hoy, queda la reseña.</p>
<p style="margin: 12px 0px; text-indent: 0px; color: #000000;"><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pinelo.com/blog/2008/08/05/qt-sistema-de-propiedades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

