QT 串口开启问题 应该算无响应?

        qDebug()<<serial->isOpen();
        if(!serial->open(QIODevice::ReadWrite)){
            QMessageBox::about(nullptr, " 错误","串口可能被占用");
            return;
        }else{
            serial->close();
        }

这段代码qDebug的结果是false,那说明串口关闭状态,那serial->open(QIODevice::ReadWrite)应该能正常打开,然后返回1,那照道理应该执行的是else里面的代码呀,为啥这个每次都是执行的是QMessageBox::about(nullptr, " 错误","串口可能被占用");这个提示框呀   就很迷惑  有没有大佬知道是什么原因吗   先谢谢各位!

打开串口前需要setPort