<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://qtfr.org/extern.php?action=feed&amp;tid=14203&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum QtFR / Tree model : problème conception]]></title>
		<link>http://www.qtfr.org/viewtopic.php?id=14203</link>
		<description><![CDATA[Les sujets les plus récents dans Tree model : problème conception.]]></description>
		<lastBuildDate>Thu, 17 May 2012 19:47:31 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  Tree model : problème conception]]></title>
			<link>http://www.qtfr.org/viewtopic.php?pid=86039#p86039</link>
			<description><![CDATA[<p>Je pense que le mieux c&#039;est de faire un Treeitem qui contient un joueurs et une liste de Treeitem (design pattern composite).</p><p>Dans ta fonction data de ton model, tu fais un bete if sur le parent.<br />Si le parent est null, c&#039;est le premier niveau donc tu retournes l&#039;equipe du joueurs.<br />Si le parent est pas null et que le parent du parent est null =&gt; 1er niveau, tu retournes le nom de la personne.<br />Sinon pour le reste, c&#039;est une feuille donc tu renvoies la donnée. C&#039;est un peu ce que tu as fait avec la profondeur. </p><br /><p>Sinon quand tu dis que tu supprimes ou ajoutes des éléments par insertRows ou removeRows, tu appelles ces fonctions ou/et tu les as surchargées ?<br />Il te faut les surcharger. Dans ces fonctions, tu as bien mis des «beginInsertRows» , endInsertRows();, pareil pour des remove ?</p><br /><p>Tu peux voir deux exemples de model de treeview, ici :<br /><a href="http://code.google.com/p/rolisteam/source/browse/trunk/Rolisteam/src/userlist/userlistmodel.h" rel="nofollow">http://code.google.com/p/rolisteam/sour … istmodel.h</a><br /><a href="http://code.google.com/p/rolisteam/source/browse/trunk/Rolisteam/src/userlist/userlistmodel.cpp" rel="nofollow">http://code.google.com/p/rolisteam/sour … tmodel.cpp</a></p><p>et ici </p><p><a href="http://code.google.com/p/rolisteam/source/browse/trunk/Rolisteam/src/charactersheet/charactersheetmodel.cpp" rel="nofollow">http://code.google.com/p/rolisteam/sour … tmodel.cpp</a><br /><a href="http://code.google.com/p/rolisteam/source/browse/trunk/Rolisteam/src/charactersheet/charactersheetmodel.h" rel="nofollow">http://code.google.com/p/rolisteam/sour … eetmodel.h</a></p><p>Sinon dans un tree view tu peux avoir plusieurs colonnes, donc c&#039;est pas mieux pour afficher les valeurs d&#039;un objet (plutot que faire un profondeur de plus )?</p><p>J&#039;espere que cela t&#039;aidera.</p>]]></description>
			<author><![CDATA[dummy@example.com (obiwankennedy)]]></author>
			<pubDate>Thu, 17 May 2012 19:47:31 +0000</pubDate>
			<guid>http://www.qtfr.org/viewtopic.php?pid=86039#p86039</guid>
		</item>
		<item>
			<title><![CDATA[Tree model : problème conception]]></title>
			<link>http://www.qtfr.org/viewtopic.php?pid=85881#p85881</link>
			<description><![CDATA[<p>Bonsoir tout le monde,</p><p>Je cherche à réaliser une tree model dans un QTreeView de type suivant :</p><p>- Camp bleu</p><p>&#160; &#160;- Arthur<br />&#160; &#160; &#160; &#160; &#160;* 19 ans<br />&#160; &#160; &#160; &#160; &#160;* Vosges<br />&#160; &#160;- Julie<br />&#160; &#160; &#160; &#160; &#160;* 24 ans<br />&#160; &#160; &#160; &#160; &#160;* Bourgogne</p><p>- Camp vert</p><p>&#160; &#160;- Jacques<br />&#160; &#160; &#160; &#160; &#160; * 17 ans<br />&#160; &#160; &#160; &#160; &#160; * Bretagne</p><p>Je suis donc allé sur <a href="http://kernelcoder.wordpress.com/2010/07/24/qts-model-view-framework/" rel="nofollow">http://kernelcoder.wordpress.com/2010/0 … framework/</a> et j&#039;ai repris la structure du TreeModel avec les TreeItem.</p><p>Tel que je vois les choses, tout se passe avec les TreeItem. Autrement dit, les TreeItems vont pour certains représenter des objets avec une information sur l&#039;équipe, d&#039;autres vont avoir pour information le nom d&#039;un objet Joueur, et enfin les derniers auront pour information les champs de l&#039;objet Joueur comme l&#039;âge.<br />Au final, seul la &quot;data&quot; va changer pour chaque TreeItem selon son niveau d&#039;arborescence (niveau 1 -&gt; equipe, niveau 2 -&gt; nom d&#039;un objet Joueur, niveau 3 -&gt; champ d&#039;un objet Joueur).<br />Aussi, pour savoir quelle donnée insérer entre une équipe, un nom de joueur et un champ du joueur, dans insertRows par exemple, je regarde la profondeur de l&#039;index.<br />Jusque là, est-ce que ma vision est juste ?</p><p>Il reste cependant un dernier point qui me pose problème dans mon modèle. Tel que c&#039;est fait pour le moment, je manipule donc des TreeItem qui forment mon TreeModel. Seulement, lorsque j&#039;insère un ou des TreeItem ou que je les remove via insertRows(), removeRows(), voir d&#039;autres surcharges utiles, je change bien le nomre d&#039;enfants d&#039;un noeud mais <strong>l&#039;action n&#039;a aucune influence sur ma structure de données formée par ma liste d&#039;objets Joueurs</strong>. Comment rendre ce modèle plus adapté afin que quand j&#039;insère un TreeItem, Je créé un objet Joueur avec les champs qui vont bien, lorsque je remove un TreeItem à un index donné, je retrouve bien dans ma liste de Joueurs le joueur concerné ?</p><p>Dois-je faire une sorte de lien entre un TreeItem et un objet Joueur ? comme un QMap par exemple ? Ou sinon, connaissez-vous la méthode appropriée ?</p><p>Merci beaucoup</p>]]></description>
			<author><![CDATA[dummy@example.com (betsprite)]]></author>
			<pubDate>Mon, 14 May 2012 21:52:43 +0000</pubDate>
			<guid>http://www.qtfr.org/viewtopic.php?pid=85881#p85881</guid>
		</item>
	</channel>
</rss>
