<br><br><div class="gmail_quote">On Thu, Nov 19, 2009 at 4:15 AM, Deepayan Sarkar <span dir="ltr">&lt;<a href="mailto:deepayan.sarkar@gmail.com" target="_blank">deepayan.sarkar@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


On Wed, Nov 18, 2009 at 2:49 PM, Deepayan Sarkar<br>
<div>&lt;<a href="mailto:deepayan.sarkar@gmail.com" target="_blank">deepayan.sarkar@gmail.com</a>&gt; wrote:<br>
&gt; On Wed, Nov 18, 2009 at 1:46 PM, Deepayan Sarkar<br>
&gt; &lt;<a href="mailto:deepayan.sarkar@gmail.com" target="_blank">deepayan.sarkar@gmail.com</a>&gt; wrote:<br>
&gt;&gt; Any idea what&#39;s going wrong here?<br>
&gt;&gt;<br>
&gt;&gt; ### Just code:<br>
&gt;&gt;<br>
&gt;&gt; library(qtbase)<br>
&gt;&gt;<br>
&gt;&gt; gscene &lt;- Qt$QGraphicsScene()<br>
&gt;&gt; rtxt &lt;- gscene$addText(&quot;some text&quot;)<br>
&gt;&gt; rtxt<br>
&gt;&gt; (rtxt$toPlainText()) ## fine<br>
&gt;<br>
&gt; And as a confirmation that the &lt;QList&gt; thing is not a problem, I get:<br>
&gt;<br>
&gt;&gt; item0 &lt;- gscene$itemAt(0, 0)<br>
&gt;&gt; item0<br>
&gt; &lt;environment: 0x9e21428&gt;<br>
&gt; attr(,&quot;class&quot;)<br>
&gt; [1] &quot;QGraphicsTextItem&quot;   &quot;QObject&quot;             &quot;QGraphicsItem&quot;<br>
&gt; [4] &quot;UserDefinedDatabase&quot; &quot;environment&quot;<br>
&gt;&gt; item0$toPlainText()<br>
&gt;<br>
&gt;  *** caught segfault ***<br>
<br>
</div>Other QGraphicsItem-s seem fine, so it must be the multiple<br>
inheritance (QObject+QGraphicsItem) problem of  QGraphicsTextItem<br>
again. Given that rtxt works but item0 doesn&#39;t, maybe it&#39;s a coercion<br>
problem somewhere in the wrapping stage?<br>
<font color="#888888"><br></font></blockquote><div><br>Everything method invocation fails with item0. The weird thing is that the environments are different. Every C++ pointer should have the same environment, and this holds true for the other QGraphicsItem types. This indicates that the pointer being returned by itemAt() and items() is incorrect.<br>

<br>Just checked it, and it looks like the pointer retrieved by e.g. itemAt() points 8 bytes higher than the one from addText(). This happens at the Smoke level, but looking at their wrappers reveals nothing. Yes, they are casting to different types, (QGraphicsTextItem *) vs (QGraphicsItem *), but that shouldn&#39;t change the value of the pointer, should it? The same error happens for addWidget() and its QGraphicsProxyWidget return value. So yes it seems like a multiple inheritance issue, but I don&#39;t understand how a simple cast could cause this. Maybe it&#39;s just another C++ surprise?<br>


 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><font color="#888888">
-Deepayan<br>
</font><div><div></div><div>_______________________________________________<br>
Qtinterfaces-devel mailing list<br>
<a href="mailto:Qtinterfaces-devel@lists.r-forge.r-project.org" target="_blank">Qtinterfaces-devel@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/qtinterfaces-devel" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/qtinterfaces-devel</a><br>
</div></div></blockquote></div><br>