C++ Qt显示按钮位于图像顶部
我需要在图像顶部显示一个按钮。类似于 背景是QPixmap/QImage,按钮是QPushbutton。我需要能够动态更改图像-因此我不确定样式表是否适合此任务。我试过了,但没能成功 有什么解决办法吗C++ Qt显示按钮位于图像顶部,c++,qt,C++,Qt,我需要在图像顶部显示一个按钮。类似于 背景是QPixmap/QImage,按钮是QPushbutton。我需要能够动态更改图像-因此我不确定样式表是否适合此任务。我试过了,但没能成功 有什么解决办法吗 子类QWidget并实现paintEent,在这里您可以在背景上绘制图像。也可以通过样式表设置和更改背景图像 将带有按钮的布局添加到此小部件 有这样的东西: class WidgetWithButton : public QWidget { Q_OBJECT QImage m_bgI
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);
}
};
工作起来很有魅力。非常感谢。