Matching Gtk.StateFlags in Python

I’m connecting to the ‘state-flags-changed’ signal of an entry ( in a ColumnView ), and I get a lot of events with variable flags of type Gtk.StateFlags. What is the proper way to match a particular state flag that I’m trying to react to?

Gtk.StateFlags are bitfields. This means that the bits in GtkStateFlags indicate if a flag is present/active. Take for example the dummy bitfield of: 0000001001 here the 1st and the 4th bit are set.

We can test if individual bit (flag) is set with a logical & operation between the bitfield and the flag we want to test . As one property of the flag is that only one bit can be set to a 1. If the result is non-zero then the flag must be present.

for example here we test if the widget is active:

widget.get_state_flags()
print('active:', bool(Gtk.StateFlags.ACTIVE & flags))

Note that the cast to a boolean is not strictly necessary.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.