首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据IF条件消失的QMessage框

根据IF条件消失的QMessage框
EN

Stack Overflow用户
提问于 2021-07-29 21:37:07
回答 1查看 29关注 0票数 0

我有以下代码,用于在传感器与串行设备断开连接时显示QMessageBox

代码语言:javascript
运行
复制
   QMessageBox msgBox;
    if (topic==TOPIC_DEVICE)
    {
        switch(reg)
        {
  
        case STIM_REG_NUM_SENSORS:
           if(value==0){                    // if statement to display message box
               msgBox.setText("Sensor got disconnected....");
               msgBox.setWindowTitle(" Sensor.");
               msgBox.exec();
           }
           else if(value==1){
               msgBox.close();
           }
            break;
        }
    }

这里的问题是,当传感器断开连接(if(value==0))时,它会正确地显示消息框,但我希望在传感器重新连接(if(value==1))时消息框自动消失,并且我尝试了上面的方法。

问题,消息框不会消失,直到我按下它的确定按钮。

有没有办法隐藏消息框上的OK按钮,使其在满足条件时自动消失(即if(value==1))

EN

回答 1

Stack Overflow用户

发布于 2021-07-29 15:34:41

问题可能是msgBox.exec();阻塞了您的switch语句( https://doc.qt.io/qt-5/qdialog.html#exec )。

如果您使用非阻塞调用,如void QDialog::open()void QMessageBox::open(QObject *receiver, const char *member),您的QMessageBox可能会像预期的那样关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68576986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档