I want to make a UIButton
disable for user touch. Both setEnabled
and setUserInteractionEnabled
can do this. Which is better? How are they different?
As setEnabled and setDisabled are not virtual, you're not reimplementing them but hiding them. There is no separate disabled property. setDisabled is just a convenience slot to enable a signal with a boolean value to either enable or disable on true.
As setEnabled and setDisabled are not virtual, you're not reimplementing them but hiding them. There is no separate disabled property. setDisabled is just a convenience slot to enable a signal with a boolean value to either enable or disable on true. Lets look at the implementation of setDisabled in QWidget for reference: /*! enables input events.
Could be yes, If you are toying with the enabled/disabled state of the children widget it can quickly get messy I think your problem is a different one. As setEnabled and setDisabled are not virtual, you're not reimplementing them but hiding them.
enabled
is a property of UIControl
, which is the superclass for UIButton
. userInteractionEnabled
is a property of UIView
(which is the superclass of UIControl
). enabled
has effects on the visual state of the object (grayed out, by default) and is generally the preferred method of disabling a control—visual feedback indicating behaviors is a good thing.
There's not much practical upshot beyond that. Code that interacts with your controls is more likely to check if buttons are enabled than if their userInteractionEnabled property is set. Hence using enabled
is more conventional.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With