需求:
- 按钮并不是长方形的,而是需要依据美工给出来的图像,进行点击,
例如,需要画一个杯子样子的按钮。 - 主要思路:
取得图像的像素内容,(中途可以对图像进行旋转或是其他操作), 然后通过QPushButton的相关设置,做出不规则按钮出来。
{
QMatrix leftmatrix;
leftmatrix.rotate(123);
//163,163为原始分辨率,这里稍做了调整。
QPixmap pixmap(":/image/StartDown.png");
QPixmap fitpixmap=pixmap.transformed(leftmatrix,Qt::SmoothTransformation);
//pixmap.scaled(110,82).scaled(110, 70, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
ui->pushButton_cup->setIcon(QIcon(fitpixmap));
ui->pushButton_cup->setIconSize(QSize(fitpixmap.size()));
ui->pushButton_cup->setFlat(true);//就是这句能够实现按钮透明,用png图片时很有用
ui->pushButton_cup->setStyleSheet("border: 0px");//消除边框,取消点击效果
ui->pushButton_cup->resize(fitpixmap.size());
ui->pushButton_cup->setMask(fitpixmap.mask());
}