gpt4 book ai didi

c++ - 窗外的QPushButton(灵感: CleanMyMac)

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:42 25 4
gpt4 key购买 nike

enter image description here我想在我的 GUI 中添加一个 QPushButton,这样按钮就在窗框外面。一个很好的比较是 CleanMyMac 中的 scan 按钮(见附图)。

我试过使主窗口透明,然后添加仅在底部透明的背景图像,使窗口看起来比实际小。然而,这会产生许多其他并发症,例如窗口框架阴影(它似乎并没有完全消失:

mainWindow->setWindowFlags(Qt::FramelessWindowHint | 
Qt::NoDropShadowWindowHint)

此外,使用上述方法,窗口无法完全展开,我宁愿按钮的一小部分在显示之外(如 CleanMyMac)。

有什么建议吗?

最佳答案

你可以使用 QWidget::setMask .作为示例,请考虑以下类...

class widget: public QWidget {
using super = QWidget;
public:
explicit widget (QWidget *parent = nullptr)
: super(parent)
, m_button("Just hanging here...")
{
setLayout(&m_layout);
m_layout.addWidget(&m_button, 1, 1);
m_layout.setRowStretch(0, 1);
m_layout.setColumnStretch(0, 1);
m_layout.setColumnStretch(2, 1);
}
protected:
virtual void resizeEvent (QResizeEvent *event) override
{
super::resizeEvent(event);
QRect r(rect());
r.setBottom(m_button.geometry().top());
QRegion region(r);
region |= m_button.geometry();
setMask(region);
}
private:
QGridLayout m_layout;
QPushButton m_button;
};

上面给出了类似...

enter image description here

虽然它目前不是很有用,但它演示了该技术。

关于c++ - 窗外的QPushButton(灵感: CleanMyMac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com