[LAD] GUI mechanics question: interaction between UI control and data

Tim Orford tim at orford.org
Sun May 29 18:05:01 CEST 2022


On Tue, May 24, 2022 at 11:40:49PM +0200, Jeanette C. wrote:
> [...]
> Consider this: An application with a toggle button (on/off), some load from
> file button and a class holding one bvoolean value connect to the on/off
> button. The class could look like this:
> class Data
> {
>   public:
>     Data(bool value): its_value(value) {}
> 	 ~Data() {}
> 	 void set(bool value) { its_value = value; }
> 	 bool get() const { return its_value; }
>   private:
>     bool its_value;
> };
> 
> The button is connected to a Data object, via a signal, so its set(bool)
> function is called.
> 
> The load function will load a value from a file.
> 
> How would you normally reflect that on GUI? What's the method to not
> only set the Data object value, but also the corresponding button state?
> What's the current practise to make this two-way connection? Combine
> both button and object in a wrapper? Have some other kind of signal?
> Simple change button state in every place the Data object is changed?
> 
> As stated above: even an old resource or documentation for a limited UI
> library will do, as long as the method shines through with little
> overhead and without anything like QML or a UI builder.

Hi

For Gtk, perhaps this answer to a similar question might be helpful:
https://discourse.gnome.org/t/declarative-state-driven-views-for-gtk/9966

The recommendation is to use GObject.bind_property().
https://docs.gtk.org/gobject/method.Object.bind_property.html
This can provide one or two way binding between data and UI objects
as long as they both inherit from GObject.

Regards
--
Tim Orford


More information about the Linux-audio-dev mailing list