首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QLabel前面附加一个QGLWidget

在QLabel前面附加一个QGLWidget
EN

Stack Overflow用户
提问于 2013-08-21 13:55:14
回答 1查看 1.4K关注 0票数 0

我有一个QGLWidget,我喜欢在上面附加一个QLabel,用于一些度量可视化(fps、对象数量等)。

为了进一步重用,我希望保持QGLWidget尽可能干净,不要在其中使用QGLWidget::renderText,而是使用带有这些度量的外部调试接口。

现在我有:

代码语言:javascript
复制
    QVBoxLayout *l = new QVBoxLayout;

    this->gl = new MyGLWidget;
    l->addWidget(gl);

    QLabel *fps = new QLabel;
    fps->setText(QString("FPS"));
    fps->setStyleSheet("QLabel { background-color : red; color : blue; }");
    fps->setParent(gl);

    this->setLayout(l);

但什么也没出现..。当然,如果我将QLabel添加到QLayout::addWidget的布局中,我会看到它。但不是我想要的..。

一些想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-22 10:05:17

没有分配到布局,小部件不知道它应该在哪里绘制,如果您不显式地告诉它。您必须显式调用QWidget::setGeometry来定位它。

然而,在QGLWidget上放置常规的Qt小部件有一些优点。QGLWidget实际上创建了一个由顶层窗口亲生的子窗口。然而,常规的窗口小部件没有自己的、独立的子窗口,这意味着,从图形系统的角度来看,它们与顶层窗口本身处于相同的Z叠加级别上。而QGLWidget的实际子窗口具有较高的Z叠加水平。养育一个QLabel到QGLWidget应该把它放在正确的Z堆叠水平。但是,OpenGL绘图操作与Qt绘图操作不同,因此您在QGLWidget上的绘图可能会破坏QLabel。

简单地说,QGLWidget之所以有一个函数"drawText“是有原因的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18359361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档