Я задал вопрос на форуме qt center, но ответа пока нет.
Надеюсь, кто-то что-то узнает об этом.
У меня есть диалог Mfc с QWinWidget внутри него.
Когда я изменяю размер моего диалога, я хочу, чтобы мой QWinWidget автоматически
быть изменен и перемещен также. Это код, который создает QWinWidget внутри диалога MFC:
int MyCDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate( lpCreateStruct ) == -1 )
return -1;
win=new QWinWidget( this->m_hWnd );
MyFrame * dialog=new MyFrame(win);
win->move(0,0);
win->show();
return 0;
}
MyFrame является производным от объекта QFrame. Объект QFrame сделан
с Qt дизайнером. QFrame назначил макет, который предполагает геометрическое управление дочерними виджетами QFrame.
Вот код, который выполняется, когда я перетаскиваю границу изменения размера моего диалога:
void MyCDailog::OnSize(UINT nType,int cx,int cy)
{
QObjectList list=win->children();
QFrame* p=(QFrame*) list.at(0);
p->resize(QSize(cx,cy));
}
Когда размер диалогового окна изменяется, я вызываю метод изменения размера моего объекта кадра из OnSize,
и я ожидал, что после изменения размера кадра
, кадр должен изменить размер и поместить свои дочерние виджеты в соответствии с
их размер подсказки и размер полиции. Но этого не происходит, по крайней мере,
не так, как должно. Что я делаю не так?