在 QTextEdit 或 Qt-Creator 的 connect() 中使用指针
Use pointers in QTextEdit or connect() on Qt-Creator
早上好,
我希望 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)));
我想知道是否可行以及如何实现?
预先感谢您的帮助,
您可以创建自己的 class,它将在文本更改后包装您的文本和信号
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)));
早上好, 我希望 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)));
我想知道是否可行以及如何实现?
预先感谢您的帮助,
您可以创建自己的 class,它将在文本更改后包装您的文本和信号
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)));