• QT中使用Event Filter监听button事件,Release后button不见


    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/zhenyu5211314/article/details/27201043

    问题RT,在程序中我使用了QT的监听事件,监听鼠标的位置,假设鼠标在button上就改变button的ICON,可是在Release版本号中(Debug版本号没问题)。这些被监听的button都看不见了,于是開始了寻找答案的道路。

    闲话少叙,直接上码:

    void MainHomeForm::init()
    {
        //为button注冊事件
        ui->SystemSetButton->installEventFilter(this);
        ui->ZoneSetButton->installEventFilter(this);
    }
    //系统监听器监听button对象
    bool MainHomeForm::eventFilter(QObject *target, QEvent *e)
    {
        if(target == ui->SystemSetButton)
        {
            if(e->type() == QEvent::Enter)
            {
                ui->SystemSetButton->resize(163,91);
                ui->SystemSetButton->setIcon(QIcon(":/new/prefix1/back/系统设置2.png"));
            }
            else if(e->type() == QEvent::Leave)
            {
                ui->SystemSetButton->resize(115,60);
                ui->SystemSetButton->setIcon(QIcon(":/new/prefix1/back/系统设置.png"));
            }
        }
        else if(target == ui->ZoneSetButton)
        {
            if(e->type() == QEvent::Enter)
            {
                ui->ZoneSetButton->resize(163,91);
                ui->ZoneSetButton->setIcon(QIcon(":/new/prefix1/back/区域控制2.png"));
            }
            else if(e->type() == QEvent::Leave)
            {
                ui->ZoneSetButton->resize(115,60);
                ui->ZoneSetButton->setIcon(QIcon(":/new/prefix1/back/区域控制.png"));
            }
        }
    }

    想法一:显示不了button图片,应该是图片的路径问题吧,于是使用在Release路径下加入imageformats目录,还是不行

    想法二:我发现button都点不了了,那应该不是图片的路径问题了,直接出在button上,果断凝视了为button注冊事件的两句话,发现Release后button显示了

    发现程序中我忽略了这么一个Warning:


    哦,之前一直忽略了。原来是由于eventFilter这个函数我没给返回值,那我给一个好了

    返回FALSE吧,发现button还是不见

    返回TRUE吧,发现button可见了

    预測:应该是返回值影响了button是否可见吧


    终于解决的方法:EventFilter要返回True哦

  • 相关阅读:
    Coding 初级教程(一)——用GitHub的GUI客户端对Coding的项目进行管理
    自己以前写的日记,现在公开(别的文章需要用)1
    7-网页,网站,微信公众号基础入门(微信配网_申请微信公众号)
    关于Keil4 转到 Keil5以后的一些错误解决
    6-网页,网站,微信公众号基础入门(PHP学习_1)
    5-网页,网站,微信公众号基础入门(配置网站--PHP配置上数据库)
    4-网页,网站,微信公众号基础入门(配置网站--下载安装PHP)
    3-网页,网站,微信公众号基础入门(学习网页_2)
    7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(GPRS模块SSL连接MQTT)
    6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(Wi-Fi模块SSL连接MQTT)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10925407.html
  • Copyright © 2020-2023  润新知