首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTextEdit前访问

QTextEdit前访问
EN

Stack Overflow用户
提问于 2015-11-25 12:10:55
回答 2查看 252关注 0票数 0

我正在用Qt做一个简单的代码文本编辑器,它可以提取C++关键字并给它们着色。我知道Qt有一个foreach函数,但是如何在用户输入的QTextEdit中使用它呢?

下面是我尝试过的方法,如果我在textEdit中键入单词Hi,它就会在调试中弹出。这不管用。

代码语言:javascript
复制
QLinkedList<QTextEdit* > list;
QString str = "Hi";
foreach(str, list)
    qDebug() << str;

我想我在某个论坛上看到了这个想法,但它又一次不起作用。如果你能提供帮助,任何建议都是有帮助的!谢谢!

编辑:

这是我现在所拥有的:

代码语言:javascript
复制
QString text = ui->textEdit->toPlainText();
QString str = "Hi";
foreach(str, text)
    qDebug() << str;

除了在每次打印字符时qDebug()输出Hi,而不是在打印所有Hi字符时

EN

回答 2

Stack Overflow用户

发布于 2015-11-25 13:06:56

我不知道为什么你有一个QTextEdit的列表,但是为了编译你的代码,你必须像下面这样做。

代码语言:javascript
复制
QLinkedList<QTextEdit*> list;
QTextEdit* textEdit = NULL;
foreach(textEdit, list)
    qDebug() << textEdit->toPlainText();

代码的问题在于,您试图将QTextEdti*分配给QString

对评论中提出的问题的回答:

textEdittextChanged()信号连接到插槽。

connect(textEdit, SIGNAL(textChanged()), SLOT(onTextChanged()))

在插槽中,使用空格字符拆分textEdit中的文本,然后迭代。

代码语言:javascript
复制
private void MyWnd::onTextChanged()
{
    QStringList wordList = textEdit->toPlainText().split();
    foreach (QString word, wordList )
    {
        qDebug() << word;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-11-25 16:47:12

天哪,你这样做是完全错误的,要求解决方案对你的问题毫无帮助,事实上,这只会让事情变得更糟。

此外,您需要的所有文档都在Qt中。

检查此Qt example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33908353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档