我有以下代码,用于在传感器与串行设备断开连接时显示QMessageBox
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)
)
发布于 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
可能会像预期的那样关闭。
https://stackoverflow.com/questions/68576986
复制相似问题