精华内容
下载资源
问答
  • QString怎么去掉最后一个字符

    万次阅读 2019-07-03 16:31:03
    QString data = "hello world!"; data = data.left(data.size - 1); /* data左边size - 1长度的数据 */
    QString data = "hello world!";
    data = data.left(data.size - 1);  /* 取data左边size - 1长度的数据 */

     

    展开全文
  • Qt QString字符串截取

    千次阅读 2020-10-19 19:37:46
    Qt QString字符串截取 利用Qt,结合一些图像处理,做...mid()函数接受两个参数,第一个是起始位置,第二个是串的长度。如果省略第二个参数。 fileName = QFileDialog::getOpenFileName(this,tr("Open Image"),filePat

    Qt QString字符串截取

    利用Qt,结合一些图像处理,做软件的时候,做基础的首先是读一个图片进来,经常需要用字符串存一下所读图片的路径,或者名称。所以经常会利用到字符串的截取,可以从整串路径中得到图片名。

    以下就介绍两个截取字符串的函数:

    mid()函数和section()函数

    mid()函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数。

    fileName = QFileDialog::getOpenFileName(this,tr("Open Image"),filePath,tr("Image File(*.png *.jpg *.jpeg *.bmp)"));
    qDebug() << "picture name: " << fileName;
    //这种时候的输出就会是:
    picture name:  "D:/QX_DP/jiequ/001.jpg"
    //如果使用mid()函数
    qDebug() << fileName.mid(15,3);
    //就会得到我们想要的图片名:
    "001"
    

    但是这种方法一旦路径改变,几乎是不能再次利用的,所读出的内容必然变化,所以更推荐下面的section()函数

    QString QString::section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const
    

    这个函数把字符串看成是几个块,这些块由 sep 分隔,start 和 end 指定块号,end 默认为 –1 ,返回的是[ start, end ]内的块组成的字符串,如果 start 和 end 都是负数,那么将从字符串的后面往前面数,返回 [ -end, –start ]内的块组成的字符串。SectionFlags是一些标记,如SectionSkipEmpty表示如果两个分隔符之间是空串,那么就会跳过。

    如果你想截取的内容是用不同符号分开的,比如上面的图片名是/和.分开的,那么你可以这样做:

    qDebug() << fileName.section(QRegExp("[/.]"),3,3)

    []内是所有分隔符的种类,第二个参数是从0开始的第几段,从此段开始,第三个参数是结束的段,这个3,3表示从第三个/后开始,到.结束。

    会比mid好用很多,希望对大家有所帮助!

    展开全文
  • 返回一个从position开始,长度为n的QString 类型的子串。 当position的下标值超出字符串长度时,返回null;当从position开始的子串长度不够n或n为-1(缺省时的默认值也为-1),函数返回从position开始到结尾的子串。...

    mid()函数

    原型

    QString QString::mid(int position, int n = -1) const

    返回一个从position开始,长度为n的QString 类型的子串。
    当position的下标值超出字符串长度时,返回null;当从position开始的子串长度不够n或n为-1(缺省时的默认值也为-1),函数返回从position开始到结尾的子串。

    Returns a string that contains n characters of this string, starting
    at the specified position index. Returns a null string if the position
    index exceeds the length of the string. If there are less than n
    characters available in the string starting at the given position, or
    if n is -1 (default), the function returns all characters that are
    available from the specified position.

    例子:

      QString x = "Nine pineapples";
      QString y = x.mid(5, 4);            // y == "pine"
      QString z = x.mid(5);               // z == "pineapples"
    

    midRef()

    若需要QStringRef类型的子串,可以使用函数midRef (),与mid()类似,只是返回类型为ref,原型如下

    QStringRef QString::midRef(int position, int n = -1) const

    返回一个从position开始,长度为n的类型的子串的引用。
    当position的下标值超出字符串长度时,返回null引用;当从position开始的子串长度不够n或n为-1(缺省时的默认值也为-1),函数返回从position开始直到结尾的子串。

    Returns a substring reference to n characters of this string, starting
    at the specified position. If the position exceeds the length of the
    string, a null reference is returned. If there are less than n
    characters available in the string, starting at the given position, or
    if n is -1 (default), the function returns all characters from the
    specified position onwards.

    Example:

     QString x = "Nine pineapples";
      QStringRef y = x.midRef(5, 4);      // y == "pine"
      QStringRef z = x.midRef(5);         // z == "pineapples"
    

    QString 还有left() 和 right().两个函数可以取子串

    left() 与 right()

    原型

    QString QString::left(int n) const

    返回最左边n个字符的子串。当n大于等于QString.size()或n小于0的时候,返回整个字符串。

    Returns a substring that contains the n leftmost characters of the
    string. The entire string is returned if n is greater than or equal to
    size(), or less than zero.

    例子:

      QString x = "Pineapple";
      QString y = x.left(4);      // y == "Pine"
    

    right()与left()类似,不阐述

    展开全文
  • Qt 生成一个固定长度的随机字符

    千次阅读 2018-11-26 14:10:40
    要生成100以内的随机数,可以使用qrand()%100 来实现,那么如果要生成一个固定长度的随机字符串该怎么弄呢,其实原理很简单,就是事先准备好一个字符串数组,然后结合qrand()函数随机从字符串数组中通过循环出来就...

    概述

    我们都知道,使用Qt的qrand()可以生成一个随机的数字,比如说,要生成100以内的随机数,可以使用qrand()%100 来实现,那么如果要生成一个固定长度的随机字符串该怎么弄呢,其实原理很简单,就是事先准备好一个字符串数组,然后结合qrand()函数随机从字符串数组中通过循环取出来就可以啦。

    代码实现

    原理已经说过了,其实就是一个非常简单的算法,直接看代码:

    QString getRandomString(int length)
    {
        qsrand(QDateTime::currentMSecsSinceEpoch());//为随机值设定一个seed
    
        const char chrs[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        int chrs_size = sizeof(chrs);
    
        char* ch = new char[length + 1];
        memset(ch, 0, length + 1);
        int randomx = 0;
        for (int i = 0; i < length; ++i)
        {
            randomx= rand() % (chrs_size - 1);
            ch[i] = chrs[randomx];
        }
    
        QString ret(ch);
        delete[] ch;
        return ret;
    }
    

    getRandomString函数,输入要生成的随机字符串长度,就可以返回随机字符串了,如果要生成其他的特殊字符,可以直接修改chrs数组的内容就可以了。

    代码很简单,不再赘述。

    展开全文
  • 目前得到的数据库中的时间类型的值在Qt中以Qstring显示,时间是正确的,但是时间 年月日 与 时分秒 之间多了 “T”,请问怎么办,怎么消掉这T,网上说是Json的问题,但具体我应该如何操作??。QString转...
  • 判断QString中是否有汉字

    千次阅读 2016-09-13 15:56:20
    种方法,逐一QString字符,进行判断。   [html] view plaincopy QString str;  int nCount = str.count();  for(int i = 0 ; i nCount ; i++)  {   QChar
  • Qt:判断QString中是否有汉字

    千次阅读 2018-01-14 23:02:33
    如题,项目中可能遇到此类问题,先写马马虎虎的解决方法:...第种方法,逐一QString字符,进行判断。 [html]view plaincopy QStringstr; intnCount=str.count(); for(inti=0;inCount;i++) { QCharc
  • 问题描述: 0\1串保存在QString中,对两等长QString进行按位与,一般方法是将QString转换成QBitArray或者int型数据,然后进行按位与操作。 由于我要处理的0\1串...将两个QString中的字符一位地出来,将QC...
  • 判断字符串是否符合如下格式 开头有一个字母为xyfgracatk的大写或小写 ...//写一个正则表达式的规则,其中的括号为后续使用QRegExp::cap()元素做准备 QRegExp rx("([xyfgrdcatkXYFGRDCATK])(\\d*).([0-7])");
  • Qt获取IP地址

    2017-06-03 08:15:30
    前言每台设备根据网络设置可能会存在多个IP,通过Qt获取IP的时候不能只其中一个,这里的方法是通过Qt的接口循环获取,最终生成IP地址列表,然后连接成一个字符串。正文废话不多说,直接看代码。QString ...
  • qt写的工具类,包含经常用到的各种功能块 /* ... yctools.h ...*/ //全局静态方法类 ... //正则字符串中两个字符串中间的值,默认一个匹配的位置 static QString getMid(const QString &strSource,const
  • Qt零碎知识点记录

    2014-01-28 10:08:13
    1:raise()和activateWindow()让窗口成为顶层窗口和激活状态 2:show()对应非模态对话框,而...4:str[0].unicode() 取字符串第一个元素(str为QString类型) 5:QString::arg()函数将会使自己的参数替换最小数字的
  • qt零碎知识点记录

    2013-12-16 14:39:03
    1:raise()和activateWindow()让窗口成为顶层窗口和激活状态 2:show()对应非模态...4:str[0].unicode() 取字符串第一个元素(str为QString类型) 5:QString::arg()函数将会使自己的参数替换最小数字的"%n"参数,并
  • QComboBox设置数据

    2018-09-16 22:33:00
    QComboBox设置数据的时候,下来框的数据往往不是真正需要的数据, 这时候就希望能进行种绑定, 能够访问到下拉框所点击字符串相对应的数据。方法1: 使用QHash进行保存,如QHash<QString, T> 的方式来访问...
  • 后打开另一个窗口,一个是打开另一个窗口而自身不消失。可以看到他们实现的 方法是不同的。 三、Qt Creator 登录对话框(原创) 实现功能: 在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确...
  • //截取下一个数据包的数据,留作下次读取 totalLen = buffer.size(); //更新多余的数据 m_buffer = buffer; } /* while (tcpSocket->bytesAvailable() > 0) { qint64 nbytes = tcpSocket->...
  • void MainWindow::getimage() { ...//65382 reply4 = networkmanager...导致图片下载不下来,然后我猜测可能是访问这个图片的时候URL会跳成一个新的地址进行下载,所以我想问问各位大佬有没有什么好的解决方法。。。。
  • //截取下一个数据包的数据,留作下次读取 totalLen = buffer.size(); //更新多余的数据 m_buffer = buffer; } /* while (tcpSocket->bytesAvailable() > 0) { qint64 nbytes = tcpSocket->...
  • 其中0将决于文件写入的字节序,尽管IIRC Qt将始终将文件存储在一个特定的字节序中,而不管平台如何使二进制文件是跨平台的。查看Qt源代码,了解字符串的编写方式。也许还可以在十六进制编辑器中查看二进制文件。...

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

qstring取一个字符