将文本编辑中的字符串添加到 QStack
Add String from textEdit to a QStack
我正在尝试从 textEdit
捕获内容并将其添加到 QStack。我拆分的内容是为了能够颠倒捕获的句子的顺序。我已经涵盖了那部分,但我希望能够从 QStringList 转换为推送到 QStack。这是我的:
void notepad::on_actionReversed_Text_triggered()
{
QString unreversed = ui->textEdit->toPlainText();
QStringList ready = unreversed.split(QRegExp("(\s|\n|\r)+"), QString::SkipEmptyParts);
QStack<QString> stack;
stack.push(ready);
QString result;
while (!stack.isEmpty())
{
result += stack.pop();
ui->textEdit->setText(result);
}
}
QStack::push
只接受其模板类型的对象。
即在您的情况下,您必须将 QString
推入 QStack<QString>
,而不是列表。
因此,迭代字符串列表,依次推动每个字符串。
foreach (const QString &str, ready) {
stack.push(str);
}
其他错误是您正在更新 textEdit
inside for
循环。您实际上想在循环中构建字符串,然后 更新文本。
QString result;
while (!stack.isEmpty()) {
result += stack.pop();
}
ui->textEdit->setText(result);
另一个答案可能是取消堆栈,只是以相反的顺序迭代 QStringList ready
以构建 result
字符串。
我正在尝试从 textEdit
捕获内容并将其添加到 QStack。我拆分的内容是为了能够颠倒捕获的句子的顺序。我已经涵盖了那部分,但我希望能够从 QStringList 转换为推送到 QStack。这是我的:
void notepad::on_actionReversed_Text_triggered()
{
QString unreversed = ui->textEdit->toPlainText();
QStringList ready = unreversed.split(QRegExp("(\s|\n|\r)+"), QString::SkipEmptyParts);
QStack<QString> stack;
stack.push(ready);
QString result;
while (!stack.isEmpty())
{
result += stack.pop();
ui->textEdit->setText(result);
}
}
QStack::push
只接受其模板类型的对象。
即在您的情况下,您必须将 QString
推入 QStack<QString>
,而不是列表。
因此,迭代字符串列表,依次推动每个字符串。
foreach (const QString &str, ready) {
stack.push(str);
}
其他错误是您正在更新
textEdit
inside for
循环。您实际上想在循环中构建字符串,然后 更新文本。
QString result;
while (!stack.isEmpty()) {
result += stack.pop();
}
ui->textEdit->setText(result);
另一个答案可能是取消堆栈,只是以相反的顺序迭代 QStringList
ready
以构建 result
字符串。