[Interest] QComboBox crash with QWinWidget
Phyrexian Hulk
phyrexian at outlook.com
Mon Aug 25 22:50:05 CEST 2014
So I have a button, a combo box, and a table widget in a qwidget that’s setup (seupUI) with a QWinWidget as a parameter:
win = new QWinWidget(handle); winId = win->winId(); Ui::Form ui; ui.setupUi(win);
The “handle” is the HWND from a win32 window. When I click on the combo I don’t get a popup showing the combo contents (in this case, 3 strings: “one”,“two”,“three”. which I set up in designer), but I can see the combo has the focus. I click once more and it loses the focus (still no popup). Click it a third time and it crashes. The call stack is show below.
> QtCored4.dll!qt_message_output(QtMsgType msgType=QtFatalMsg, const char * buf=0x02ab2bc0) Line 2247 C++ QtCored4.dll!qt_message(QtMsgType msgType=QtFatalMsg, const char * msg=0x672a35e8, char * ap=0x0018d42c) Line 2305 + 0x12 bytes C++ QtCored4.dll!qFatal(const char * msg=0x672a35e8, ...) Line 2488 + 0xf bytes C++ QtCored4.dll!qt_assert(const char * assertion=0x65a2b954, const char * file=0x65a2b93c, int line=114) Line 2004 + 0x16 bytes C++ QtGuid4.dll!QNativeImage::QNativeImage(int width=-1651032721, int height=1624765, QImage::Format format=Format_RGB32, bool isTextBuffer=false, QWidget * __formal=0x029ce3d0) Line 114 + 0x1b bytes C++ QtGuid4.dll!QRasterWindowSurface::prepareBuffer(QImage::Format format=Format_RGB32, QWidget * widget=0x029ce3d0) Line 378 + 0x34 bytes C++ QtGuid4.dll!QRasterWindowSurface::setGeometry(const QRect & rect={...}) Line 325 C++ QtGuid4.dll!QWidgetBackingStore::releaseBuffer() Line 279 C++ QtGuid4.dll!QWidgetPrivate::hide_sys() Line 1078 C++ QtGuid4.dll!QWidgetPrivate::hide_helper() Line 7445 C++ QtGuid4.dll!QWidget::setVisible(bool visible=false) Line 7629 C++ QtGuid4.dll!QWidget::hide() Line 491 + 0x16 bytes C++ QtGuid4.dll!QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode mode=CloseWithEvent) Line 7764 C++ QtGuid4.dll!QWidget::close() Line 7823 C++ QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x00150c7a, unsigned int message=28, unsigned int wParam=0, long lParam=9560) Line 2000 + 0xb bytes C++
A second kind of crash…If I click directly on the down arrow at the right of the combo box it immediately crashes. Here’s the stack:
> QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x00000000, const QRegion & rgn={...}, const QPoint & offset={...}, int flags=5, QPainter * sharedPainter=0x00000000, QWidgetBackingStore * backingStore=0x02870608) Line 5376 + 0x3 bytes C++ QtGuid4.dll!QWidgetBackingStore::sync() Line 1331 C++ QtGuid4.dll!QWidgetPrivate::syncBackingStore() Line 1808 C++ QtGuid4.dll!QWidget::event(QEvent * event=0x0286dd00) Line 8481 C++ QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x0286e4b8, QEvent * e=0x0286dd00) Line 4396 + 0x11 bytes C++ QtGuid4.dll!QApplication::notify(QObject * receiver=0x0286e4b8, QEvent * e=0x0286dd00) Line 4361 + 0x10 bytes C++ QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x0286e4b8, QEvent * event=0x0286dd00) Line 732 + 0x15 bytes C++ QtCored4.dll!QCoreApplication::sendEvent(QObject * receiver=0x0286e4b8, QEvent * event=0x0286dd00) Line 215 + 0x39 bytes C++ QtCored4.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver=0x00000000, int event_type=0, QThreadData * data=0x0289de30) Line 1373 + 0xd bytes C++ QtCored4.dll!qt_internal_proc(HWND__ * hwnd=0x008f0d26, unsigned int message=1025, unsigned int wp=0, long lp=0) Line 503 + 0x10 bytes C++
I'm using Qt version 4.7.1, compiling with visual studio 2008, the qwinwidget is from Qt/MFC Migration Framework v2.8.
I know it has something to with the QWinWidget, but I don’t know what the problem is (considering that the button and table work just fine). Can anyone give me any guidance or their thoughts on this?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140825/2f093726/attachment.html>
More information about the Interest
mailing list