1

我在qt中心论坛上问了我的问题,但还没有答案。
希望有人会对此有所了解。

我有一个 Mfc 对话框,里面有 QWinWidget。当我调整对话框大小时,我希望 QWinWidget 也自动调整大小和重新定位。这是在 mfc 对话框中创建 QWinWidget 的代码:

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 调用我的框架对象的调整大小方法,并且我期望在我调整到框架的大小之后,框架应该根据它们的大小提示和大小策略调整其子小部件的大小和重新定位。但这并没有发生,至少不是它应该发生的。我做错了什么?

4

0 回答 0