Используйте указатели в QTextEdit или connect () на Qt-Creator - PullRequest
0 голосов
/ 12 октября 2018

Доброе утро, я хочу, чтобы QTextEdit динамически изменял значение при изменении Qtring.

для примера:

QString text = "Test2";
ui->OutputConsole->setText(&text);
text = "Test2"; //Value in QTextEdit OutputConsole change dynamically and display "Test2"

Я также думал об использовании функции connect (), но я незнаете, как его использовать, я нашел несколько примеров в интернете:

QString Text= "Test";
connect(Text, SIGNAL(changeText(QString)), ui->OutputConsole, SLOT(labelChangeText(QString)));

Хотелось бы узнать, возможно ли это и как это сделать?

Заранее спасибо за вашпомощь,

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете создать свой собственный класс, который обернет ваш текст и измененные сигналы текста

class StringWrapper : public QObject
{
   Q_OBJECT
public:
    explicit StringWrapper(QObject *parent = nullptr);

    void SetString(const QString& str);

private:
    QString m_str;

signals:
    void TextChanged(QString str);

public slots:
};

void StringWrapper::SetString(const QString &str)
{
    if (str != m_str) {
        m_str = str;
        emit TextChanged(m_str);
    }
}

, а затем подключится к вашему ярлыку

StringWrapper m_strWrapper;
connect(&m_strWrapper, SIGNAL(TextChanged(QString)), ui->OutpuConsole, SLOT(setText(QString)));
...