QT记事本——打开,保存,关闭文件功能实现

1.在ui界面中,勾选“打开串口”,并选上的属性中checkable

2.右键选择“打开串口”转到槽函数选择

3.

void Widget::on_btn_close_clicked(bool checked)
{
    if (checked)//串口未被打开
      {
        //1.选择端口号
        serialport->setPortName(ui->cm_serialNum->currentText());
        //2.配置串口参数(校验位,波特率,数据位,停止位,流控)
        serialport->setBaudRate(ui->cm_botelv->currentText().toInt());
        serialport->setDataBits(QSerialPort::DataBits(ui->cm_shujvwei->currentText().toUInt()));
        serialport->setStopBits(QSerialPort::StopBits(ui->cm_stopwei->currentText().toUInt()));
        if(ui->cm_liukong->currentText()=="None")
        {
            serialport->setFlowControl(QSerialPort::NoFlowControl);
        }

        switch (ui->cm_jiaoyanwei->currentText().toInt())
        {
        case 0:
            serialport->setParity(QSerialPort::NoParity);
            break;
        case 1:
            serialport->setParity(QSerialPort::EvenParity);
            break;

        case 2:
            serialport->setParity(QSerialPort::MarkParity);
            break;
        case 3:
            serialport->setParity(QSerialPort::OddParity);
            break;
        case 4:
            serialport->setParity(QSerialPort::SpaceParity);
            break;
        default:
            serialport->setParity(QSerialPort::UnknownParity);
            break;
        }
        //3.打开串口
        if(serialport->open(QIODevice::ReadWrite))//打开成功
        {
            qDebug()<<"serial open secusses!";
            //将串口参数设置为使能
            ui->cm_botelv->setEnabled(false);
            ui->cm_liukong->setEnabled(false);
            ui->cm_stopwei->setEnabled(false);
            ui->cm_shujvwei->setEnabled(false);
            ui->cm_serialNum->setEnabled(false);
            ui->cm_jiaoyanwei->setEnabled(false);

            ui->btn_close->setText("关闭串口");
             ui->btnsend->setEnabled(true);
        }else//打开失败
        {
            QMessageBox msgBox;
            msgBox.setWindowTitle("打开串口失败");
            msgBox.setText("串口被占用.");
            msgBox.exec();

        }
       // serialState=true;
      }
    else//串口被打开
       {
        serialport->close();//关闭串口
        ui->btn_close->setText("打开串口");
        //将串口参数设置为使能
        ui->cm_botelv->setEnabled(true);
        ui->cm_liukong->setEnabled(true);
        ui->cm_stopwei->setEnabled(true);
        ui->cm_shujvwei->setEnabled(true);
        ui->cm_serialNum->setEnabled(true);
        ui->cm_jiaoyanwei->setEnabled(true);
        ui->btnsend->setEnabled(false)  ;
        //serialState=false;
    }


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值