如何调整Qt表单类中OpenGL小部件的大小
我在Qt表单类(如何调整Qt表单类中OpenGL小部件的大小,qt,opengl,resize,widget,qglwidget,Qt,Opengl,Resize,Widget,Qglwidget,我在Qt表单类(MyForm)的QVBoxLayout(verticalLayout\u 2)中有一个OpenGL小部件(myWidget) 我想在窗体调整大小后调整OpenGL小部件的大小 要将QVBoxLayout和OpenGL小部件的大小调整为新的大小,我应该在changeEvent方法中写些什么 MyForm::MyForm(QWidget *parent) : QDialog(parent), ui(new Ui::MyForm) { ui->setupU
MyForm
)的QVBoxLayout
(verticalLayout\u 2
)中有一个OpenGL小部件(myWidget
)
我想在窗体调整大小后调整OpenGL小部件的大小
要将QVBoxLayout
和OpenGL小部件的大小调整为新的大小,我应该在changeEvent方法中写些什么
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?
}
您不必编写任何代码来自动调整子窗口小部件的大小。(另外,
changeEvent()
无论如何都不是用于此目的的正确事件处理程序。)
您的问题可能与使用Qt Designer创建的布局有关。您可能将一个垂直布局从侧边栏拖到表单小部件中,而表单小部件实际上并不创建顶级布局。犯这个错误很容易
相反,请执行以下操作之一在Qt Designer中创建顶级布局:
- 右键单击对象检查器中的顶级(表单)小部件,并从“布局”菜单中选择一个布局
- 选择顶级小部件并单击工具栏中的一个布局图标:
如果布局设置正确,则无需添加任何代码。如果在Qt Designer中预览表单,布局将自动更新。您不必编写任何代码来自动调整子窗口小部件的大小。(另外,
changeEvent()
无论如何都不是用于此目的的正确事件处理程序。)
您的问题可能与使用Qt Designer创建的布局有关。您可能将一个垂直布局从侧边栏拖到表单小部件中,而表单小部件实际上并不创建顶级布局。犯这个错误很容易
相反,请执行以下操作之一在Qt Designer中创建顶级布局:
- 右键单击对象检查器中的顶级(表单)小部件,并从“布局”菜单中选择一个布局
- 选择顶级小部件并单击工具栏中的一个布局图标:
如果布局设置正确,则无需添加任何代码。如果您在Qt Designer中预览表单,您的布局将自动更新。谢谢@jmk,我在Qt Designer中右键单击表单后选择“布局->网格布局”解决了这个问题。现在,表单自动调整大小,而不使用changeEvent方法。谢谢@jmk,我在Qt设计器中右键单击表单后选择“布局->网格布局”解决了这个问题。现在,表单将自动调整大小,而无需使用changeEvent方法。