我想要"飞行"我的界面上方的信息(如信息文本)。 我已经将QWidget子类化了,设置了FramelessWindowHint和TranslucentBackground标志。
所以我用我的界面小部件创建它作为ctor参数,样式(样式在ressource QSS文件中并设置为main中的qApp)确实适用于我的自定义小部件,除了背景(我可以放一个borderbut no background-color)。 但是,当我制作自定义小部件时,它是自己的父级(我将ctor参数留空),然后我可以更改背景。
我在另一个项目中使用了这种技术与完全相同的flyingwidget类,它运行得很好。 QGLWidget可能有原因(在创建QGLWidget之前或之后创建窗口小部件会导致应用样式)。
这是我创建我的小部件的代码。
Form_coupeHighlighterInfo *highlightCoupeInfo = new Form_coupeHighlighterInfo(this); //ctor parameter that changes
highlightCoupeInfo->setObjectName(QStringLiteral("highlightCoupeInfo"));
highlightCoupeInfo->attachToRight();
highlightCoupeInfo->setFixedWidth(400);
highlightCoupeInfo->setFixedHeight(400);
highlightCoupeInfo->setRelativePos(QPoint(-10, 0));
connect(this, SIGNAL(alignToInterface(QPointF&)), highlightCoupeInfo, SLOT(alignToInterface(QPointF&)));
我必须补充一点,背景属性并不像其他属性那样有效,但我不知道他到底发生了什么,QSS在很多方面对我来说看起来很神奇。
我使用Qt 5.2.1 / msvc2012opengl / windows 7