MyPushButton *btn1=new MyPushButton("://image/mmap1.png"); btn1->setParent(this); btn1->move(this->width()*0.6-btn1->width()*0.5,this->height()*0.7);
时间: 2024-03-14 13:48:38 浏览: 74
Vue.js插件,用于处理按钮异步锁定状态。 演示:https://stukh.github.io/vue-promise-btn/-JavaScript开发
如果你想在自定义的按钮类`MyPushButton`中实现对图片进行缩放并显示为按钮的效果,那么可以在`MyPushButton`的构造函数中进行图片缩放,然后在`paintEvent`函数中绘制缩放后的图片。例如:
```
MyPushButton::MyPushButton(const QString &imagePath, QWidget *parent) : QPushButton(parent)
{
QPixmap pixmap(imagePath);
QPixmap scaledPixmap = pixmap.scaledToWidth(width(), Qt::SmoothTransformation);
setIcon(QIcon(scaledPixmap));
setIconSize(scaledPixmap.size());
}
void MyPushButton::paintEvent(QPaintEvent *event)
{
QPushButton::paintEvent(event);
QPainter painter(this);
painter.drawPixmap(rect(), icon().pixmap(size()));
}
```
在这个例子中,我们在`MyPushButton`的构造函数中,先加载图片并按照按钮的宽度进行缩放,然后将缩放后的图片设置为按钮的图标,并调整图标的大小为缩放后的图片的大小。在`paintEvent`函数中,先调用了`QPushButton`的`paintEvent`函数,以确保按钮的默认绘制行为得以执行。然后,创建了一个`QPainter`对象,并使用按钮的图标绘制了整个按钮的背景,从而实现了使用缩放后的图片作为按钮的效果。
在主窗口中创建`MyPushButton`对象并设置其位置的代码可按照之前的方式进行。
阅读全文