[Qt-interest] QWinWidget problem when using DeleteOnClose attribute
elizabeta petreska
elizabeta.petreska at gmail.com
Wed Sep 23 09:24:33 CEST 2009
Hello
First of all, sorry if this is the wrong mailing list, just direct me where
to post my question if it is.
I am using Mfc to Qt Solution for showing Qt widgets in plugin dlls that are
loaded in third party Mfc application.
I am using the function QMfcApp::pluginInstance in my DllMain function to
make the QApplication object.
I reproduce the error on this very simple listing :
class SimpleDlg : public QDialog,public Ui::Dlg
{
Q_OBJECT
public:
SimpleDlg(QWidget* parent=0);
~SimpleDlg(){}
private slots:
OnButtonClicked();
};
and in the implementation file :
SimpleDlg::SimpleDlg(QWidget* parent):QDialog(parent)
{
this ->setAttribute(Qt::WA_DeleteOnClose);
}
SimpleDlg::OnButtonClicked()
{
1: this->showMinimized();
2 : MSG msg;
3: PeekMessage( &msg, NULL, 0, 0,0 );
4: lineEdit->setText("Crash"); //crashes here. If I comment
line this->showMinimized() the crash doesnot happen
5: this->showMaximized();
}
somewhere in the plugin dll :
QWinWidget* win=new QWinWidget(MfcAppHandle);
win->showCentered();
SimpleDlg* dlg=new SimpleDlg(win);
dlg->show();
The crash is occuring in line 4, since the dialog is already deleted when
the execution comes to that line.
Also note that if I uncomment line 1 i.e showMinimized() the crash is not
happening. The dialog is deleted after PeekMessage function, cause then the
Qt message hook which is
set with the Qt Mfc Migration Solution is executed.
So the question is who is sending the DefferedDelete event, is it
showMinimized () ? I was thinking that this event will be sent only
when I close the dialog hence the name Qt::WA_DeleteOnClose.
Also I don't think that the DefferedDelete event is send by showMinimized()
cause this doesnot make sense at all. So when the DefferedDelete should be
sent normally and
what could be the problem in my example ?
Note that the when I show my dialog from regular Qt application i.e not Mfc
everything is working as it should.
Thank you for your time
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20090923/5f634dd6/attachment.html
More information about the Qt-interest-old
mailing list