Qt使用小结(QString,十进制,十六进制数据转换,打开文件等)

Qt使用小结:
一、QT中部分数据类型的相互转换
1、10进制整数转为16进制字符串
      int dec = 100; 
      //arg()函数的参数含义为:1.要转换的十进制数2.要转换成的字符串长度(因为这里dec是int型占四个字节,
      //故转换为16进制后应是8个十六进制数)3.目标字符串的进制 4.填充字符
      QString str = QString("%1").arg(dec,8,16,QChar('0'));    //str = "0064"

2、QString字符串转为整型可直接用该类的toInt(),toUInt(),toLong()...等接口
3、整型数据转为“年-月-日  时-分-秒”规格的日期(自1970.01.01)
      unsigned int dec = 1 522 221 953;
      QDateTime dateTime = QDateTime::fromTime_t(dec);
      QString  TimeStr = dateTime.toString("yyyy-MM-dd  hh:mm:ss");    //TimeStr = "2018-03-28";
4、十进制转为ascll字符
      int dec = 65;
      char ch = dec;
      QString decToStr = QString(ch);
5、double或float类型转换为可控制精度的10进制字符串
      double dou = 1234.56789;
      //arg()的参数含义为:1.要转换的double或float型数据 2.目标数据的位宽,填0即可 
      //3.格式控制,本人只试过'f'或'g' 4.精度,即精确到小数点后的位数,最后一位会四舍五入
      QString douToStr = QString("%1").arg(dou,0,'f',3);    //douToStr = "1234.568";

二、设置textEdit编辑框的某部分数据为选中状态
      QTextCharFormat fmt;   //创建选中时要设置的颜色
      QColor color(135,126,255);
      fmt.setBackground(color);
      QTextCursor cursor = ui->textEdit->textCursor();  //获取编辑框的光标
      cursor.setPosition(10,QTextCursor::MoveAnchor);  //设置光标位置
      cursor.setPosition(20,QTextCursor::KeepAnchor);   //移动光标
      cursor.setCharFormat(fmt);      //此时,位置10-20的数据的背景便被设置为fmt的背景色
三、文件操作
1、打开文件
      fileName = QFileDialog::getOpenFileName(0,QString(),QString(),tr("File(*.pcap)"));  //弹出选择文件对话框
      QFile mFile(fileName);
      mFile.open(QIODevice::ReadOnly);  //只读方式打开
      QByteArray array = mFile.readAll();  //将所有数据读到array中
      mFile.close();    //关闭文件
2、用QBuffer读取QByteArray中的数据
     QByteArray array = mFile.readAll();  //与1联系来看
     QBuffer buffer;
      buffer.setBuffer(&array);
      buffer.open(QIODevice::ReadOnly);
      ...
      读取操作;
      ...
四、给按钮添加图标
      QIcon icon(":/new/image/image/sign-down-icon.png"); //":/new/image/image/sign-down-icon.png"是图片路径
      ui->button->setIcon(icon);

Qt使用小结(QString,十进制,十六进制数据转换,打开文件等)_第1张图片
      详细操作可参看这篇文章:https://blog.csdn.net/lbb2016/article/details/52675773

你可能感兴趣的:(Qt学习)