QT之QPushButton中setEnabled() 和 setClickable() 的应用
在使用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()相当于具体的某个开关,控制这个开关是否可以点击。