创建半透明布局

Create a semi transparent layout

提问人:MulliGun77 提问时间:11/9/2023 最后编辑:Abderrahmene Rayene MihoubMulliGun77 更新时间:11/10/2023 访问量:70

问:

我想创建一个由半透明组成的,如下所示:layoutQTableWidget

A 70% transparent QTableWidget

在它的顶部还有一个半透明的,比如:QLabel

QLabel that is transparent except for the borders

我尝试了以下代码:

QWidget* centralWidget = new QWidget;
QGridLayout* layout = new QGridLayout(NULL);
QTableWidget* table = new QTableWidget(5, 3);
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
table->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
QLabel* pLabel = new QLabel;
QPixmap pix("./Frame_transp4.png");
pLabel->setPixmap(pix);
pLabel->setWindowOpacity(0.4);
table->setWindowOpacity(0.8);
layout->addWidget(table, 0, 0, Qt::AlignCenter);
layout->addWidget(pLabel, 0, 0, Qt::AlignHCenter);
centralWidget->setLayout(layout);
MainWnd.setCentralWidget(centralWidget);
MainWnd.show();

但是设置 A for a 和 widgets 似乎不起作用(它们都是完全不透明的)。 似乎适用于主窗口本身(不适用于它的子窗口)。setWindowOpacityQTableWidgetQLabelsetWindowOpacity

C++ Windows Qt 不透明度 qtablewidget

评论

0赞 G.M. 11/9/2023
看看QGraphicsOpacityEffect
0赞 musicamante 11/9/2023
布局管理与透明度无关。此外,目前还不清楚您指的是什么透明度级别:在重叠的小部件之间、小部件和窗口背景之间,还是在底层窗口/桌面之间?
0赞 MulliGun77 11/9/2023
@musicamante。我希望 QTableWidget 小部件比其他应用程序(Windows 桌面)透明 70%,同时具有 QLabel 边框 40% 透明,边框内容(边框内的区域)完全透明,可以查看它下面的表格(QTableWidget 小部件),就像 Windows 桌面本身在半透明表格中闪耀一样。
0赞 musicamante 11/10/2023
小部件绘画从根本上说就像在画布上进行物理绘画,窗口就是画布:如果你想看透它,画布必须是透明的,否则你总是会看到窗口背景。此外,顾名思义,仅适用于窗口,不适用于小部件。您必须将属性设置为窗口(在第一次显示之前),然后为每个需要特定透明度的小部件使用单独的QGraphicsOpacityEffects。setWindowOpacityQt.WA_TranslucentBackground

答: 暂无答案