Qt正确的方式设置Z或Z-Index(编程)

4
我希望确保对象正确地分层,我在网上阅读到实现这一目标的方法是设置z-index样式。
然而,到目前为止,我还没有能够做到这一点,我想以编程方式设置样式。
我尝试过:
  pobjWidget->setStyleSheet("z-index: 5");

并且

  pobjWidget->setStyleSheet("z: 5");

这两种情况都会在控制台中显示“未知属性z-index”或“未知属性z”。

pobjWidget是指向QWidget的指针。

我需要这样做的原因是,我正在将具有透明背景的小部件呈现到实时视频小部件上,并且我需要确保顶部的小部件不会闪烁,这是试图消除闪烁的一种方法。


使用pobjWidget->raise()。 - Vahagn Avagyan
@Programmer_ARM,raise并不够好,它只是将调用它的小部件提升到最顶层,我需要定义顺序。 - SPlatten
1
但是,如果您知道从后往前的所需小部件顺序 a,b,c,...,z,那么您可以简单地执行 a->raise(); b->raise(); ...; z->raise();,对吗? - G.M.
1
如果你不得不手动分层,那么你的用户界面可能没有正确地结构化。在我看来,这是错误的解决方法。 - dtech
为什么子/父关系对于您的应用程序不足? - Silicomancer
1个回答

8

我假设您已经拥有了每个要订购的小部件的句柄。如果raise和lower对您来说太粗糙,您可以使用

void QWidget::stackUnder(QWidget *w)

引用文档中的话:“将小部件放置在父小部件堆栈中的w下面。 为使其起作用,小部件本身和w必须是兄弟姐妹。”

重要的一点是它们必须是兄弟姐妹,即需要具有相同的QObject作为父级。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接