繁体   English   中英

Qt信号和插槽。 滑块和进度条

[英]Qt signals and slots. Slider and progress bar

connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), 
        ui->progressBar, SLOT(setValue(ui->horizontalSlider->value()-100)));

例如,当滑块的值为30时,我尝试连接信号和插槽,进度条的值为70,但什么都没改变,我找不到错误。

欢迎上车。

我很惊讶您想在连接内部进行计算。 这不是它的工作方式。 请添加一个类似的广告位(方法)

void slotSetValue(int input)
{
  ui-progressBar->setValue(100 - input);
}

并像connect(ui->horizontalSlider,SIGNAL(valueChanged(int)), this,slotSetValue(int)));

可能需要对您的代码进行微调。

ps。 我建议使用经过编译时检查的Qt5连接。

您通常这样做:

connect(ui->horizontalSlider, &QSlider::valueChanged, 
ui->horizontalSlider, &QSlider::setValue);

但是您的逻辑不正确,因为您将valueChangedsetValue连接在一起,这将导致应用程序崩溃,因为将发生溢出...

另一方面,仅用于管道信号和插槽的连接,您不能对其中涉及的信号/函数进行数学运算,至少不能那样……您将需要一个lambda或类似的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM