gpt4 book ai didi

c++ - 将QGLWidget绘制到QWidget中的特定矩形区域

转载 作者:行者123 更新时间:2023-11-28 05:24:50 25 4
gpt4 key购买 nike

在 Qt 中 hello gl example ,QGLWidget 小部件的使用如下(我删除了 slider 代码以简化)

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 类中的矩形中?

最佳答案

如果您只想在此布局中显示此小部件,那很容易。你可以用 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);

查看:

enter image description here

当然,您应该根据小部件的几何形状使用正确的边距值,如下所示:

mainLayout->setContentsMargins(this->width() / 2 ,this->height() / 2, 0, 0);

此代码将小部件放置在小部件的右下角。

关于c++ - 将QGLWidget绘制到QWidget中的特定矩形区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com