Как я могу заставить QSlider указывать текущее значение - PullRequest
0 голосов
/ 09 мая 2020

Я не могу понять с помощью QT Assistant, как настроить QSlider, чтобы отображать текущее значение при перетаскивании, изначально я пришел с этой идеей:

QLabel* lblYear = new QLabel();
QSlider* sldYear = new QSlider(Qt::Horizontal);

QObject::connect(sldYear, &QSlider::valueChanged, [&]() {
    lblYear->setText(sldYear->value);
});

Но это не работает :

'QAbstractSlider::value': non-standard syntax; use '&' to create a pointer to member

Я не знаю, подходит ли идея лейбла, и я не против его изменить. Единственное требование - видеть значение ползунка в любой момент.

1 Ответ

3 голосов
/ 09 мая 2020
QObject::connect(sldYear, &QSlider::valueChanged, [](int value) {
    lblYear->setText(QString::number(value));
});

Вам необходимо преобразовать значение int в QString, чтобы использовать его с setText. Кроме того, захват указателя по ссылке не всегда безопасен и также не имеет смысла, поскольку он так же дешев, как и захват по значению. Более того, в этом случае вам даже не нужно, вы получаете value из сигнального интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...