2013-03-21 35 views
1

內一個OpenGL插件我有一個QVBoxLayoutverticalLayout_2)內一個OpenGL窗口小部件(myWidget),在Qt的窗體類(MyForm)。如何調整Qt的窗體類

我想調整的OpenGL窗口小部件時表單被調整。

我應該寫changeEvent中方法裏面是什麼,來調整QVBoxLayout和OpenGL的小部件,以新的大小?

MyForm::MyForm(QWidget *parent) : 
    QDialog(parent), 
    ui(new Ui::MyForm) 
{ 
    ui->setupUi(this); 
    myWidget = new GL_Widget; 
    ui->verticalLayout_2->addWidget(myWidget); 
    adjustSize(); 
} 

void MyForm::changeEvent(QEvent *e) 
{ 
    // What should I write here? 
} 

回答

1

您不應該編寫任何代碼來自動調整您的子窗口小部件的大小。 (另外,changeEvent()不是這個用途的正確事件處理程序。)

您的問題可能與您使用Qt Designer創建的佈局有關。你可能拖累從側邊欄垂直佈局到您的表單控件,這實際上是不創建一個頂級佈局。犯這個錯誤很容易。

相反,做下列操作之一在Qt Designer中創建頂級佈局:

  • 右鍵單擊在Object Inspector您的頂級(形式)小部件,並選擇其中一個「佈局」菜單中的佈局。

  • 選擇頂級窗口部件,然後單擊工具欄中的佈局圖標之一:

    qt designe r toolbar

如果您設置佈局(S)正確,你不需要添加任何代碼。如果您在Qt Designer中預覽表單,您的佈局將自動更新。

+0

謝謝@jmk,我通過選擇「鋪陳 - >奠定了在網格中」解決問題後,用右鍵單擊表格,從Qt設計。現在,表單會自動調整大小而不使用changeEvent方法。 – Mikael 2013-03-25 08:26:48

相關問題