Qt如何将行编辑连接到进度条

Qt how to connecto Line Edit to progress bar

本文关键字:连接 编辑 Qt      更新时间:2023-10-16

我对QT和C++很陌生,我正在尝试将行编辑连接到进度条,因此当我在行编辑中输入一些整数值时,进度条将显示它。我无法实现它。这就是我正在尝试的:

connect(ui->batterycapacity,&QLineEdit::textChanged, ui->progressBar,ui->progressBar->setValue(ui->batterycapacity->text().toInt()));

或者这个:

connect(ui->batterycapacity,&QLineEdit::textChanged, ui->progressBar,ui->progressBar->&QProgressBar::setValue(ui->batterycapacity->text().toInt()));

电池容量是我的线路编辑。如何将这 2 个连接在一起?事先谢谢。

你很接近。由于信号的参数与插槽的参数不同,您需要用toInt来调整它,但你不能简单地将任意代码粘贴在参数中并期望C++在信号更改时执行它。

您需要将代码段包装在 lambda 表达式中:

connect(ui->batterycapacity, &QLineEdit::textChanged, ui->progressBar,
[=](const QString& text) {
ui->progressBar->setValue(text.toInt()));
});

lambda 将接收textChanged信号的参数并将其传递给setValue方法。 前面的[=]位告诉编译器按值捕获ui的值,以便可以在 lambda 内部访问它。