gpt4 book ai didi

c++ - 图像顶部的 Qt 显示按钮

转载 作者:行者123 更新时间:2023-11-30 03:00:55 26 4
gpt4 key购买 nike

我需要在图像顶部显示一个按钮。类似于

背景是一个QPixmap/QImage,按钮是一个QPushbutton。我需要能够动态更改图像 - 所以我不确定样式表是否适合该任务。我试过 this , 但无法让它工作。

有什么解决办法吗?

最佳答案

  1. 子类化 QWidget 并实现 paintEent,您可以在其中绘制图像作为背景。也可以通过样式表设置和更改背景图像。
  2. 向此小部件添加带按钮的布局。

有这样的东西:

class WidgetWithButton
: public QWidget
{
Q_OBJECT
QImage m_bgImage;
public:
WidgetWithButton(QWidget* aParent)
: QWidget(aParent)
{
QHBoxLayout* l = new QHBoxLayout(this);
QPushButton* myButton = new QPushButton(tr("Close"));
l->addWidget( myButton, 0, Qt::AlignCenter );
}
void setImage(const QImage& aImage)
{
m_image = aImage;
update();
}
protected:
virtual void paintEvent(QPaintEvent* aPainEvent)
{
if (m_image.isValid())
{
QPainter painter(this);
painter.drawImage(rect(), m_image);
}
else
QWidget::paintEvent(aPainEvent);
}
};

关于c++ - 图像顶部的 Qt 显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573374/

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