Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QWinWidget display to display Qt widget on MFC window



  • Hello,
    I'm trying to display a Qt widget (a QLineEdit to be precise) in a MFC window. To do so, I'm using QWinWidget.

    It displays well the QLineEdit, but the problem I have is that when I want to update the field and click on it, it's disappearing...
    Then when I click on another window in my application, it's reapprearing, and is well updated if I changed the text inside of it (even if it had disappeared)
    Anyone has an idea on what's going wrong here?

    Here is my code :

    		CRect ControlArea2;
    		m_Control3.GetClientRect(ControlArea2);
    		HWND hWnd_TransfFunction = m_Control3.GetSafeHwnd();
    		QWinWidget w(hWnd_TransfFunction, 0, 0);
    		QWidget *widget = new QWidget(&w);
    		QHBoxLayout *hbox = new QHBoxLayout(widget);
    		QLabel *label = new QLabel("Enter text:", widget);
    		QLineEdit *edit = new QLineEdit(widget);
    		hbox->addWidget(label);
    		hbox->addWidget(edit);
    		widget->move(0, 0);
    		widget->setBackgroundRole(QPalette::Base);
    		w.setGeometry(ControlArea2.left, ControlArea2.top, ControlArea2.Width(), ControlArea2.Height());
    		w.setFixedSize(ControlArea2.Width(), ControlArea2.Height());
    		w.show();
    
    

  • Lifetime Qt Champion

    Hi
    What Qt version are you using?
    QtWinMigrate might have issue in Qt5+



  • @mrjj I am using Qt 5.12.3. So it might be the problem?
    Do you think I should try an older version like Qt 5.8?


Log in to reply