On Dec 17, 2007 3:56 PM, Andreas Pakulat &lt;<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c">On 17.12.07 15:08:23, duncan duncan wrote:<br>&gt; On Dec 17, 2007 3:00 PM, duncan duncan &lt;<a href="mailto:duncan73@gmail.com">duncan73@gmail.com</a>&gt; wrote:<br>&gt;<br>&gt; &gt; Hello.
<br>&gt; &gt;<br>&gt; &gt; In my application (a QApplication), as central widget I have two<br>&gt; &gt; QListWidget.<br>&gt; &gt;<br>&gt; &gt; When I double click on an item of a list widget, I want to show a dialog<br>&gt; &gt; with some detail data for the item
<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; This is the relevant code, the dialog is designed using Qt-Designer and<br>&gt; &gt; windowModality is Qt::NonModal<br>&gt; &gt;<br>&gt; &gt; ---<br>&gt; &gt; ItemDlg = QtGui.QDialog
()<br>&gt; &gt; ItemDlgGui = Ui_D_item_detail()<br>&gt; &gt; ItemDlgGui.setupUi(ItemDlg)<br>&gt; &gt;<br>&gt; &gt; ItemDlg.show()<br>&gt; &gt;<br>&gt; &gt; #ItemDlg.exec_()<br>&gt; &gt; ---<br>&gt; &gt;<br>&gt; &gt; If I use the 
ItemDlg.exec_() line, all work correctly, but the dialog is<br>&gt; &gt; modal, so I cannot work on the main window.<br>&gt; &gt;<br>&gt; &gt; Since I want a modeless dialog, I try to use ItemDlg.show() but now the<br>&gt; &gt; dialog show itself and then close immediatly.
<br>&gt; &gt;<br>&gt; &gt; Any hints ?<br>&gt; &gt;<br>&gt;<br>&gt; It seems that by mistake I resolve the problem.<br>&gt;<br>&gt; It just need to call the .show() AND the .exec_() function.<br><br></div></div>No you don&#39;t. You actually want to make sure the instance doesn&#39;t get
<br>deleted once the function that creates it ends. Thats why its closed<br>immediately when you only use show(). When the function ends, there&#39;s no<br>refernece to the dialog anymore, because ItemDlg is a local variable,
<br>thus the dialog is garbage collected.<br></blockquote><div><br><br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Do something like 
self.itemdialog = QtGui.QDialog() instead of the first<br>line above.<br></blockquote><div><br>Actually I modified all the structure, so these lines of codes are in
the __init__ function of a derived class (not important I suppose).<br>
<br>
The whole point of the problem is that I want (and I need) to be able
to open the dialog (the display a set of editable data), look at it,
modify some field, then eventually open another dialog which display
some diffente data (basically the data are record of a db table)<br>
<br>
If in the __init__ funciont I put the code you suggest, without the call to .exec_(), the dialog close immediatly. I suppose that this happen because self is not a pointer to the application, but a pointer to the dialog class.
<br><br>For now it work as I expect, I will do further investigation as soon as the code will stabilize a little (and all the feature are implemented)<br><br>Thanks anyway<br>bye<br>Gianluca<br><br><br></div></div>