1

我是 Qt 的新手。我有一个习惯QWidget。如果它的(X坐标+宽度)值大于特定值;比如说Z,那么我希望它QWidget在坐标Z之前是可见的,在Z之后是不可见的或透明的。Qt是否专门提供任何属性?有人可以给我一个提示如何处理它。

4

1 回答 1

0

Source一种方法是使用合成模式使用透明画笔进行显式覆盖。为此,需要将顶级小部件设置为允许半透明,然后覆盖整个顶级小部件的子覆盖小部件将在需要时覆盖透明度。

另一种方法是使用具有自定义模拟框架的无框架小部件,并将所有子小部件保存在子小部件中,子小部件是顶级小部件中的子小部件,并且顶级小部件上没有布局管理器。顶层将有效地夹住所有的孩子,并像一个窗口一样作用在他们身上。需要一个特殊的顶级调整大小处理程序来管理子小部件的大小和位置,以及顶级的大小。最小垂直尺寸约束需要从子小部件传播到顶级小部件。

这两种方法都应该相对容易实现(<100 行)。

于 2018-06-14T07:18:34.750 回答