我做的是重载了QPushButton,版本是QT4.4.3
QCustButton.h
-------------------------------------
#include <QtGui>
//
class QCustButton : public QPushButton
{
public:
QCustButton(QWidget *parent);
protected:
void enterEvent(QEvent * event) ;
void leaveEvent ( QEvent * event ) ;
void mousePressEvent(QMouseEvent *event) ;
void mouseReleaseEvent(QMouseEvent *event) ;
void paintEvent(QPaintEvent *event) ;
};
#endif
QCustButton.cpp
------------------------------
#include "QCustButton.h"
QCustButton::QCustButton(QWidget *parent):QPushButton(parent)
{
setIcon(QIcon(QString::fromUtf8(":/buttonNor.png"))) ;
}
void QCustButton::paintEvent(QPaintEvent *event)
{
QPushButton::paintEvent(event) ;
QPainter painter(this) ;
if(objectName() == "btLoad")
painter.drawText(rect(),Qt::AlignCenter,QApplication::translate("CustButton", "Login", 0, QApplication::UnicodeUTF8));
if(objectName() == "btCancel")
painter.drawText(rect(),Qt::AlignCenter,QApplication::translate("CustButton", "Exit", 0, QApplication::UnicodeUTF8));
return ;
}
void QCustButton::enterEvent(QEvent * event)
{
setIcon(QIcon(QString::fromUtf8(":/buttonOn.png"))) ;
return QPushButton::enterEvent(event) ;
}
void QCustButton::leaveEvent ( QEvent * event )
{
setIcon(QIcon(QString::fromUtf8(":/buttonNor.png"))) ;
return QPushButton::leaveEvent(event) ;
}
void QCustButton::mousePressEvent(QMouseEvent *event)
{
setIcon(QIcon(QString::fromUtf8(":/buttonPre.png"))) ;
return QPushButton::mousePressEvent(event) ;
}
void QCustButton::mouseReleaseEvent(QMouseEvent *event)
{
setIcon(QIcon(QString::fromUtf8(":/buttonNor.png"))) ;
return QPushButton::mouseReleaseEvent(event) ;
}
你把图片换成自己的图片试试,还有文本也要换
[ 此贴被duduqq在2009-02-11 20:01重新编辑 ]