#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
protected:
bool eventFilter(QObject *watched, QEvent *event);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "qpainter.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->widget123->installEventFilter(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{
if (watched == this->ui->widget123 && event->type() == QEvent::Paint) {
QPainter p(ui->widget123);
QPen pen(Qt::red);
pen.setWidth(4);
p.setPen(pen); //设置画笔记颜色
p.drawRect(2, 2, 50, 50); //绘制边框
}
return QWidget::eventFilter(watched, event);
}