class QtGuiApplication7 : public QWidget
{
Q_OBJECT

public:
QtGuiApplication7(QWidget *parent = Q_NULLPTR)::QWidget(parent)
{
ui.setupUi(this);
installEventFilter(this);
ui.pushButton->installEventFilter(this);
}

void setStyle(const QString &style) {
QFile qss(style);
qss.open(QFile::ReadOnly);
qApp->setStyleSheet(qss.readAll());
qss.close();
}
protected:
//void mousePressEvent(QMouseEvent *event)
//{
// if (event->button() == Qt::LeftButton) {
// // 处理鼠标左键
// setStyle("2.qss");
// }
// else if (event->button() == Qt::RightButton)
// {
// setStyle("1.qss");

// }
// else {
// // 传递其它按键给基类
// mousePressEvent(event);
// }
//}

bool eventFilter(QObject *object, QEvent *event)
{
if (object == ui.pushButton && event->type() == QEvent::MouseButtonPress) {
qDebug() << "1";
QMouseEvent *keyEvent = static_cast<QMouseEvent *>(event);
if (keyEvent->button() == Qt::LeftButton) {
setStyle("2.qss");
return true;
}
else if (keyEvent->button() == Qt::RightButton)
{
setStyle("1.qss");
return true;

}
else
return false;
}
return false;
}
private:
Ui::QtGuiApplication7Class ui;
};

 

 

//bool MyWidget::event(QEvent *event) { if (event->type() == QEvent::KeyPress) { QKeyEvent *ke = static_cast<QKeyEvent *>(event); if (ke->key() == Qt::Key_Tab) { // 特别的Tab操作 return true; } } else if (event->type() == MyCustomEventType) { MyCustomEvent *myEvent = static_cast<MyCustomEvent *>(event); // 自定义事件处理 return true; } return QWidget::event(event); }