当前位置: 首页 > 工具软件 > Inputmask > 使用案例 >

QT 表格中的内容 怎么用 inputmask设定范围

司马英才
2023-12-01

  一般inputmask 只能用在QLineEdit中设定界限,这次做上位机的时候,内容是在表格中,经过同事指导帮忙,实现如下:

上位机从下位机读取参数,或者初始化


    QString str;
          for(int i =0;i<6;i++)
           {
               str += QString("%1").arg(stru.protocol.dlt645.addr[i], 2, 16, QChar('0'));
           }       字符串以16进制输出
          //item = new QTableWidgetItem(str);
          QLineEdit *lineEdit = new QLineEdit(str);   定义一个新的QLineEdit
          lineEdit->setInputMask("HHHHHHHHHHHH");   16进制范围的设定
          ui->tableWidget->setCellWidget(iRow, 4, lineEdit);   //表格内容输出

上位机下载参数到下位机:


      QWidget *widget = ui->tableWidget->cellWidget(iRow, 4);    要写的内容位置
            QLineEdit *lineEdit = qobject_cast<QLineEdit *>(widget);   这个学会是怎么实现的
            QString str = lineEdit->text();
 
 
            QString addr0,addr1,addr2,addr3,addr4,addr5;
            addr0 = str.mid(0,2);
            addr1 = str.mid(2,2);
            addr2 = str.mid(4,2);
            addr3 = str.mid(6,2);
            addr4 = str.mid(8,2);
            addr5 = str.mid(10,2);
            stru.protocol.dlt645.addr[0]=addr0.toInt(0,16);
            stru.protocol.dlt645.addr[1]=addr1.toInt(0,16);
            stru.protocol.dlt645.addr[2]=addr2.toInt(0,16);
            stru.protocol.dlt645.addr[3]=addr3.toInt(0,16);
            stru.protocol.dlt645.addr[4]=addr4.toInt(0,16);
            stru.protocol.dlt645.addr[5]=addr5.toInt(0,16);


 类似资料: