Qt QStringList的使用

1.类介绍

Header:#include <QStringList>
CMake:find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake:QT += core
Inherits:QList

QStringList继承QList,因此QList的成员函数均能使用,常用的为:

void

append(const QList<T> &value)

追加一个List中所有元素到列表末尾

void

append(QList<T> &&value)

追加一个元素到列表末尾

QList::const_reference

at(qsizetype i) const

同[],指定元素位置

QList::iteratorbegin() 迭代器,一般配合循环使用,表示初始地址
QList::iteratorend() 迭代器,一般配合循环使用,表示初始地址
voidclear() 清空所有元素
bool

contains(const AT &value) const

查询是否包含value

qsizetype

count(const AT &value) const

返回列表中与value相等的元素个数

qsizetype

count() const

等效size()

QList::pointerdata()
QList::const_pointerdata() const
bool

empty() const

列表为空返回true

boolendsWith(QList::parameter_type value) const
QList::iterator

erase(QList::const_iterator pos)

删除 pos 指向的元素,返回指向下一个元素的迭代器或者 list.end()

QList::iterator

erase(QList::const_iterator begin, QList::const_iterator end)

删除从 begin 到 end 指向的元素,注意 end 指向的元素不删除

QList<T> &fill(QList::parameter_type value, qsizetype size = -1)
qsizetype

indexOf(const AT &value, qsizetype from = 0) const

从前向后 查找等于 value 值的元素序号

QList::iteratorinsert(qsizetype i, QList::parameter_type value)
QList::iteratorinsert(qsizetype i, qsizetype count, QList::parameter_type value)
QList::iteratorinsert(QList::const_iterator before, QList::rvalue_ref value)
QList::iteratorinsert(qsizetype i, QList::rvalue_ref value)
bool

isEmpty() const

判断是否为空,是空返回true

qsizetype

lastIndexOf(const AT &value, qsizetype from = -1) const

从后向前查找等于 value 值的元素序号

qsizetypelength() const
QList<T>

mid(qsizetype pos, qsizetype length = -1) const

mid() 函数新建一个子列表,将本列表从序号 pos 开始位置,复制长度为 length 数量的元素到子列表中并返回。
如果 length 为 -1(或大于后面剩余的元素数量),就返回从 pos 开始的所有元素列表。返回的子列表是独立的新列表,与本列表没有内存共享

voidmove(qsizetype from, qsizetype to)
void

prepend(QList::rvalue_ref value)

将参数里的元素 value 添加到列表头部,等同于 insert(0, value)

void

push_back(QList::parameter_type value)

压元素到末尾

void

pop_back()

弹出最后的元素

void

remove(qsizetype i, qsizetype n = 1)

指定位置删除元素

qsizetype

removeAll(const AT &t)

删除所有元素

void

removeAt(qsizetype i)

删除对应位置元素

voidreplace(qsizetype i, QList::parameter_type value)
voidreplace(qsizetype i, QList::rvalue_ref value)
voidresize(qsizetype size)
qsizetype

size() const

元素数量

QList<T>sliced(qsizetype pos) const
void

swap(QList<T> &other)

交换当前列表与另一个列表的内容

void

swapItemsAt(qsizetype i, qsizetype j)

指定元素位置交换

QList::const_referenceoperator[](qsizetype i) const

2.Public Functions(成员函数)

bool

contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

看看是否包含该Str,包含则会返回true

boolcontains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList

filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

过滤器,将会根据条件筛选出内容,一般一个新的QStringList变量去接收

QStringListfilter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringListfilter(const QRegularExpression &re) const
qsizetype

indexOf(const QRegularExpression &re, qsizetype from = 0) const

从前往后找,返回索引

qsizetype

lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const

从后往前找,返回索引

QString

join(const QString &separator) const

连接QStingList里的每个元素,中间用separator连接,一般用一个QString变量去接收

QString

join(QChar separator) const

同上

QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &

replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

根据参数去替换对应的参数

QStringList &replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(const QRegularExpression &re, const QString &after)
void

sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)

排序

3.实战代码使用

QStringList filenames;
QDir dir("/home");
if (!dir.exists())
{
    return;
}
filenames = QStringList(QString("*.txt").split(";"));
dir.setFilter(QDir::Files);
//dir.setSorting(QDir::Name);
filenames = dir.entryList();

QLineEdit *LineEdit = new QLineEdit;
QString lineeditStr = LineEdit->text();
if (lineeditStr == NULL) {
   return;
}
QStringList fliterList = filenames.filter(lineeditStr);
filenamesComboBox->clear();
filenamesComboBox->addItems(fliterList);
QString fliterStr = fliterList.join(",");
LineEdit->setText(fliterStr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北海__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值