<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Get inherited QTreeWidgetItem]]></title><description><![CDATA[<p dir="auto">Hi!<br />
I inherited in QTreeWidgetItem and set this item to QTreeWidget. How I can get MyTreeWidgetItem from QTreeWidget in signal currentItemChanged and function currentItem()?</p>
<pre><code>class MyTreeWidgetItem : public QObject, public QTreeWidgetItem
{
    Q_OBJECT
public:
    MyTreeWidgetItem(){};
    int id = -1;
    int type = TypeItemProtocol::protocol;
    QVector &lt;int&gt; vector;
    void setId(int value){id = value;}
    int  getId(){return id;}
    void setType(int typeValue) {type = typeValue;}
    int  getType() {return type;}
    void addInVector(int value) {vector.append(value);}
};
</code></pre>
]]></description><link>https://forum.qt.io/topic/139514/get-inherited-qtreewidgetitem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 06 Nov 2026 10:05:25 GMT</lastBuildDate><atom:link href="https://forum.qt.io/topic/139514.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Sep 2022 08:48:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Get inherited QTreeWidgetItem on Fri, 23 Sep 2022 09:40:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/christian-ehrlicher">@<bdi>Christian-Ehrlicher</bdi></a> said in <a href="/post/729913">Get inherited QTreeWidgetItem</a>:</p>
<blockquote>
<p dir="auto">or qobject_cast&lt;&gt;</p>
</blockquote>
<p dir="auto">=&gt; <code>qobject_cast&lt;MyTreeWidgetItem*&gt;(current);</code></p>
<p dir="auto">Here <code>MyTreeWidgetItem</code> is <code>QObject</code> but <code>current</code>'s <em>formal</em> type is <code>QTreeWidgetItem</code>, which is not <code>QObject</code>.  In this situation is <code>qobject_cast&lt;&gt;</code> allowed?</p>
]]></description><link>https://forum.qt.io/post/729915</link><guid isPermaLink="true">https://forum.qt.io/post/729915</guid><dc:creator><![CDATA[JonB]]></dc:creator><pubDate>Fri, 23 Sep 2022 09:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Get inherited QTreeWidgetItem on Fri, 23 Sep 2022 09:41:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jsulm">@<bdi>jsulm</bdi></a> said in <a href="/post/729908">Get inherited QTreeWidgetItem</a>:</p>
<blockquote>
<p dir="auto">If cast fails because the object is not MyTreeWidgetItem you will get nullptr</p>
</blockquote>
<p dir="auto">True for <code>dynamic_cast&lt;&gt;</code>.  The only time OP's <code>static_cast&lt;&gt;</code> would return <code>nullptr</code> is if <code>QTreeWidgetItem *current == nullptr</code>, not if it were say plain <code>QTreeWidgetItem *</code>.  Just saying.....</p>
]]></description><link>https://forum.qt.io/post/729914</link><guid isPermaLink="true">https://forum.qt.io/post/729914</guid><dc:creator><![CDATA[JonB]]></dc:creator><pubDate>Fri, 23 Sep 2022 09:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to Get inherited QTreeWidgetItem on Fri, 23 Sep 2022 09:37:16 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jsulm">@<bdi>jsulm</bdi></a> said in <a href="/post/729908">Get inherited QTreeWidgetItem</a>:</p>
<blockquote>
<p dir="auto">You should always check pointers after casts!</p>
</blockquote>
<p dir="auto">... and use the correct cast - static_cast&lt;&gt; is very problematic here since you can't huarantee that every item is a MyTreeWidgetItem here. Use dynamic_cast&lt;&gt; or qobject_cast&lt;&gt;</p>
]]></description><link>https://forum.qt.io/post/729913</link><guid isPermaLink="true">https://forum.qt.io/post/729913</guid><dc:creator><![CDATA[Christian Ehrlicher]]></dc:creator><pubDate>Fri, 23 Sep 2022 09:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to Get inherited QTreeWidgetItem on Fri, 23 Sep 2022 09:27:42 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mihaill">@<bdi>Mihaill</bdi></a> You should always check pointers after casts! If cast fails because the object is not MyTreeWidgetItem you will get nullptr and your app will crash if you try to use it.</p>
]]></description><link>https://forum.qt.io/post/729908</link><guid isPermaLink="true">https://forum.qt.io/post/729908</guid><dc:creator><![CDATA[jsulm]]></dc:creator><pubDate>Fri, 23 Sep 2022 09:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Get inherited QTreeWidgetItem on Fri, 23 Sep 2022 09:12:01 GMT]]></title><description><![CDATA[<p dir="auto">It is work</p>
<pre><code>void MainWindow::on_treeWidgetSession_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
{
    MyTreeWidgetItem* item = static_cast&lt;MyTreeWidgetItem*&gt;(current);
</code></pre>
]]></description><link>https://forum.qt.io/post/729903</link><guid isPermaLink="true">https://forum.qt.io/post/729903</guid><dc:creator><![CDATA[Mihaill]]></dc:creator><pubDate>Fri, 23 Sep 2022 09:12:01 GMT</pubDate></item><item><title><![CDATA[Reply to Get inherited QTreeWidgetItem on Fri, 23 Sep 2022 08:50:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mihaill">@<bdi>Mihaill</bdi></a> Simply cast QTreeWidgetItem* to MyTreeWidgetItem*</p>
]]></description><link>https://forum.qt.io/post/729899</link><guid isPermaLink="true">https://forum.qt.io/post/729899</guid><dc:creator><![CDATA[jsulm]]></dc:creator><pubDate>Fri, 23 Sep 2022 08:50:45 GMT</pubDate></item></channel></rss>