簡體   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