主要是通过安装过滤器,实现点击事件。
事件过滤器的操作:
-
首先给需要添加事件过滤器的部件注册监听对象;
对象名->installEventFilter(true);
-
重写eventFilter(QObject *obj, QEvent *event)函数进行处理。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label_LianJieDuXieQi->installEventFilter(this); //1.给label安装事件过滤器
}
bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{
if (watched == ui->label_LianJieDuXieQi) {//2.监听label
if (event->type() == QEvent::MouseButtonPress) {
qDebug()<<"1";
FuncOpenReader();
return true;
}
else {
return false;
}
}
else {
return QWidget::eventFilter(watched, event);
}
}