Вы можете использовать как минимум 2 возможности:
- Грязный путь: при создании формы передайте указатель на свой QTextEdit:
// mainwindow.cpp
auto myProperties = new properties(notepad->textEdit);
...
// properties.h
QTextEdit *outerEditor;
// properties.cpp
properties::properties(QTextEdit *editor) {
outerEditor = editor;
...
}
Затем в своем слоте Вы можете использовать:
int wordCount = editor->toPlainText().split(QRegExp("(\\s|\\n|\\r)+"), QString::SkipEmptyParts).count();
Qt-way: Помните - сигналы / слоты потрясающие.
Сразу после создания формы вы можете подключить сигнал из MainWindow к свойствам, передающим текст в ваш QTextEdit, и сохранить его локально:
// MainWindow.cpp
auto myProperties = new properties(notepad->textEdit);
connect(this->textEdit, QOverload<QString>::of(&QTextEdit::valueChanged), myProperties, GetNewValue);
// properties.h
void GetNewValue(QString val);
// properties.cpp
void properties::GetNewValue(QString val) {
ui->wordcountlabel->setText(QString::number(val.toPlainText().split(QRegExp("(\\s|\\n|\\r)+"), QString::SkipEmptyParts).count());
}