如何使用另一个变量的值自动更新QLineEdit

时间:2018-06-14 10:17:51

标签: qt qtwidgets

我有一个名为str的std :: string对象

我还有一个名为line_edit的QLineEdit对象。

我需要str反映用户在line_edit中写入的内容,我知道如何处理槽信号和插槽。

但是我也需要每当str改变时,QLineEdit会自动显示str的新内容。

我该怎么做?

MVC是我需要的吗?我一直在阅读它,但我还没有得到它。 另外,我读过的例子试图保持QWidget的相互更新的子对象 这让我觉得那里发生了一些神奇的事情。

我如何实现这种反应?

1 个答案:

答案 0 :(得分:0)

首先,使用QString代替std :: string可能更容易。

你可以调用line_edit-> setText(str);从您的代码更新line_edit。

您可以使用信号QLineEdit :: textChanged在写入QLineEdit时修改str的内容。

处理信号有多种方法,一种方法是使用QObject :: connect

可能如下所示:QObject::connect(line_edit, &QLineEdit::textChanged, this, &YourClassName::setText);

然后创建setText(){str = line_edit-> text}