On 17.12.07 15:08:23, duncan duncan wrote:
> On Dec 17, 2007 3:00 PM, duncan duncan <[EMAIL PROTECTED]> wrote:
> 
> > Hello.
> >
> > In my application (a QApplication), as central widget I have two
> > QListWidget.
> >
> > When I double click on an item of a list widget, I want to show a dialog
> > with some detail data for the item
> >
> >
> > This is the relevant code, the dialog is designed using Qt-Designer and
> > windowModality is Qt::NonModal
> >
> > ---
> > ItemDlg = QtGui.QDialog()
> > ItemDlgGui = Ui_D_item_detail()
> > ItemDlgGui.setupUi(ItemDlg)
> >
> > ItemDlg.show()
> >
> > #ItemDlg.exec_()
> > ---
> >
> > If I use the ItemDlg.exec_() line, all work correctly, but the dialog is
> > modal, so I cannot work on the main window.
> >
> > Since I want a modeless dialog, I try to use ItemDlg.show() but now the
> > dialog show itself and then close immediatly.
> >
> > Any hints ?
> >
> 
> It seems that by mistake I resolve the problem.
> 
> It just need to call the .show() AND the .exec_() function.

No you don't. You actually want to make sure the instance doesn't get
deleted once the function that creates it ends. Thats why its closed
immediately when you only use show(). When the function ends, there's no
refernece to the dialog anymore, because ItemDlg is a local variable,
thus the dialog is garbage collected.

Do something like self.itemdialog = QtGui.QDialog() instead of the first
line above.

Andreas

-- 
Keep emotionally active.  Cater to your favorite neurosis.
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to