2015-11-25 5 views
0

Я делаю простой текстовый редактор кода в Qt, где он выбирает ключевые слова C++ и их цвета. Я знаю, что Qt имеет функцию foreach, но как я могу использовать ее в режиме реального времени с QTextEdit, который пользователь вводит?QTextEdit foreach

Вот что я пробовал, где, если я наберу слово Hi в textEdit, он появится в отладке. Это не сработало.

QLinkedList<QTextEdit* > list; 
QString str = "Hi"; 
foreach(str, list) 
    qDebug() << str; 

Я думаю, что я видел эту идею где-то на форуме, но снова это не сработало. Если вы можете помочь, любые предложения полезны! Благодаря!

Edit:

Вот что я сейчас:

QString text = ui->textEdit->toPlainText(); 
QString str = "Hi"; 
foreach(str, text) 
    qDebug() << str; 

за исключением qDebug() выходов Hi каждый раз, когда я печатаю характер, а не когда я печатаю все Hi

ответ

0

Я понятия не имею, почему у вас есть список QTextEdit s, но чтобы получить код для компиляции, вы должны сделать, как показано ниже.

QLinkedList<QTextEdit*> list; 
QTextEdit* textEdit = NULL; 
foreach(textEdit, list) 
    qDebug() << textEdit->toPlainText(); 

Проблема с кодом является то, что вы пытаетесь присвоить QTextEdti* к QString.

Ответ на поставленный вопрос в комментарии:

Connect textChanged() сигнал textEdit к слоту.

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

В слоте, разделить текст в TextEdit с пробелом и итерации.

private void MyWnd::onTextChanged() 
{ 
    QStringList wordList = textEdit->toPlainText().split(); 
    foreach (QString word, wordList) 
    { 
     qDebug() << word; 
    } 
} 
+0

Ха-ха, я плохо, я испортил это. Я действительно хочу сделать список «QStrings». Однако я не могу понять, как связать этот список с текстовым редактированием. Итак, как я могу сделать так, чтобы, если пользователь вводит слово «Привет», он печатает 'Hi' в' qDebug() '? Другими словами, как я могу заставить «QLinkedList» просматривать текст «textEdit»? –

0

OMG вы делаете, что совершенно неправильно и просить решение, которое не поможет в вашей проблеме на самом деле это делает его еще хуже.

Также все, что вам нужно, задокументировано в Qt.
Проверьте это Qt example.

+0

Хорошо, этот ответ не поможет. Я попытался поставить код, чтобы люди могли видеть, что я пробовал. Говоря мне, что я делаю это совершенно неправильно и оставляю его там вместо того, чтобы показывать, что я мог бы сделать, это не поможет –

+0

Вы шутите? Должен ли я скопировать весь код из примера Qt, который полностью описан? Человек просто скопирует части кода из ссылки, и все будет работать из коробки. Что вы не понимаете из ссылки, которую я вам дал? –