[英]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);
但是您的邏輯不正確,因為您將valueChanged與setValue連接在一起,這將導致應用程序崩潰,因為將發生溢出...
另一方面,僅用於管道信號和插槽的連接,您不能對其中涉及的信號/函數進行數學運算,至少不能那樣……您將需要一個lambda或類似的東西
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.