Как сделать текст QLabel «связанным» с некоторой переменной, чтобы текст обновлялся после изменения переменной? - PullRequest
0 голосов
/ 02 июня 2018

Рассмотрим следующий пример:

int i = 0;

QLabel label("Number = " + QString::number(i));

label.show(); // label displays "Number = 0"

i = 5;

// label should display "Number = 5" now

Как этого добиться?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

QLabel :: setText () является публичным слотом.Когда переменная модифицируется, вы должны вызвать этот setText () для отображения.Если вы хотите отслеживать изменения, вы можете запустить QTimer, использовать сигнал QTimer :: timeout (), подключить слот setText ().

0 голосов
/ 02 июня 2018

Создайте свойство переменной объекта (через Q_PROPERTY) и:

connect(object_ptr, &Object::variableChanged, [=](int i){
    label->setText("Number = " + QString::number(i));
});
...