在使用QT與Opencv聯調時,會經常遇到判斷圖像數據是否被讀取,之后相應的PushButton等按鍵才能進行處理!
這時,就需要使用setEnabled() 和 setClickable()等函數。
if(image.data) { ui->saltButton->setEnabled(true); ui->originalButton->setEnabled(true); ui->reduceButton->setEnabled(true); }
當setEnabled() 和 setClickable() 設置成false ,按鈕就不可點擊,設置成true,按鈕就可以點擊。
它們的區別在於:
setClickable():設置成true時,按鈕為可點擊,設置為false時,按鈕不可點擊,不能響應點擊事件,但此時如果setEnabled()為true,那么按鈕即使不可點擊(setClickable()為false),也會產生變化(一閃一閃)。
setEnabled():設置成true時,相當於激活了按鈕,按鈕的狀態不再是死的,而是會對觸摸或者點擊產生反應,並且可以響應一些觸發事件。而設置成false時,按鈕是灰色的,無論是否可點擊(即使將setClickable()設置成true),都無法響應任何觸發事件。
總的來看,setEnabled()相當於總開關,控制着按鈕的狀態,而setClickable()相當於具體的某個開關,控制這個開關是否可以點擊。