Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Не могу разобраться с textedit
-
Помогите плиз, нужно с текста в textEdit выбрать слово и проверить есть ли такое слово в файле, собственно мне нужна помощь с textEdit не могу понять как взять из него слово до разделительного символа и ввести его в переменную типа QString.
-
#include <QApplication> #include <QTextEdit> #include <QDebug> #include <QPalette> #define SET_BG_COLOR(edit, color)\ QPalette palette;\ palette.setColor(QPalette::Base, (color));\ palette.setColor(QPalette::Text, (color) == Qt::red ? Qt::white : Qt::black);\ (edit).setPalette(palette); // вот функция которая тебе нужна // возвращает: // -1: одна из строк пустая // 0: не нашли // 1: нашли int findText(const QString &textEdit, const QString &textFile){ // если один из текстов пустой if(!textEdit.length() || !textFile.length()){ return -1; } // означает: читать строку до символа разделителя, включает (пробел, -, _) QRegExp rx("[^ \\-_]*"); // находим строку до разделителя if (rx.indexIn(textEdit) != -1){ // отрезаем строку до разделителя" QString find = textEdit.left(rx.matchedLength()); // производим поиск в тексте return textFile.indexOf(find) != -1; } return 0; } int main(int argc, char *argv[]) { QApplication app(argc, argv); const QString textFile = "Помогите плиз, нужно с текста в textEdit выбрать " "слово и проверить есть ли такое слово в " "файле, собственно мне нужна помощь с textEdit не могу " "понять как взять из него слово до " "разделительного символа и ввести его в переменную типа QString"; QTextEdit edit; // при изменении текста будем делать проверку QObject::connect(&edit, &QTextEdit::textChanged, [&edit, &textFile](){ QColor color = Qt::white; switch(findText(edit.toPlainText(), textFile)){ case -1: break; // цвет по умолчанию белый case 0: color = Qt::red; break; case 1: color = Qt::green; break; } SET_BG_COLOR(edit, color); }); edit.show(); return app.exec(); }