我把这个pushubutton单独定义出来(类名是PaintPat),继承于QPushButton,构造函数和paintEvent入下,问题是按钮效果不见了,变成了flat效果.
PaintPat::PaintPat()
{
    setFixedSize(QSize(240, 240));
    image = QImage(240, 240, QImage::Format_RGB16);  
  backColor = qRgb(255,255,255);   
  image.fill(backColor);
}
void PaintPat::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.drawImage(0, 0, image);
}