在Qt的hello gl example中,QGLWidget小部件的使用如下(我删除了滑块代码以简化)
glWidget = new GLWidget;
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(glWidget);
setLayout(mainLayout);
在这种情况下,QGLWidget涵盖了所有QWidget。 但在我的情况下,我需要绘制我所拥有的QWidget的有限区域。 我希望下面的虚拟绘图有助于解释我的需要。
_____________________________
| ________________ |----> This is the widget
| | | |
| | |-------|--> QGLWidget should draw here
| |______________| |
|___________________________|
如何在示例中将GLWidget类绘制到封装GLWidget的QWidget类中的矩形?
答案 0 :(得分:1)
如果你想在这个布局中显示这个小部件很容易。 您可以使用setContentsMargins函数执行此操作。
示例:
QWidget* myWidget = new QWidget;
myWidget->setStyleSheet("QWidget{ background: red; }");
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(myWidget);
mainLayout->setContentsMargins(100,100,100,100);
setLayout(mainLayout);
查看:
当然,您应该根据您的小部件几何使用正确的边距值,如下所示:
mainLayout->setContentsMargins(this->width() / 2 ,this->height() / 2, 0, 0);
此代码将小部件放在小部件的右下角。