WIP: comment 72 instead of 71 to observe the list
This commit is contained in:
parent
a2fa3852e3
commit
ef3e64dbc3
|
@ -20,6 +20,45 @@ It is possible to refer to the contents of a row in the model directly by keepin
|
|||
GListModel, guint position, GtkTreeListRow, GObject item, GListStore, GtkTreeListModel, GtkTreeExpander, GtkSelectionModel,
|
||||
GtkColumnView, GtkListView, GtkListItem, GtkSortListModel, GtkFilterListModel, GtkListItemFactory, GtkWidget
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------------
|
||||
https://discourse.gnome.org/t/tips-to-initialize-gtk4s-columnview-python/19028
|
||||
factory = Gtk.SignalListItemFactory()
|
||||
factory.connect( 'bind', bindCallback )
|
||||
def bindCallback( factory, item ):
|
||||
item.set_child( item.get_item().end_item )
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
alors qu’une fonction normale est appelée directement,
|
||||
la fonction de rappel G_CALLBACK est simplement définie au départ
|
||||
et n’est appelée et exécutée que lorsqu’un certain événement se produit.
|
||||
|
||||
|
||||
https://www.ionos.fr/digitalguide/sites-internet/developpement-web/quest-ce-quun-callback/
|
||||
|
||||
Voici un exemple de callback function en C :
|
||||
|
||||
void A()
|
||||
{
|
||||
printf("Je suis une fonction A\n");
|
||||
}
|
||||
// La fonction callback
|
||||
void B(void (*ptr)())
|
||||
{
|
||||
(*ptr) (); // Appel du callback à A
|
||||
}
|
||||
int main()
|
||||
{
|
||||
void (*ptr)() = &A;
|
||||
// Appel de la fonction B
|
||||
// La fonction A est passée en argument
|
||||
B(ptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Le résultat de ce code est donc : "Je suis une fonction A". Comme en JavaScript, une fonction de rappel est appelée chaque fois qu’un certain événement se produit. En C, ces fonctions sont utilisées pour créer diverses nouvelles bibliothèques pour des travaux de programmation ultérieurs, et pour émettre les signaux du noyau qui sont nécessaires à la gestion des événements asynchrones.
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
https://discourse.gnome.org/t/documentation-by-gtk-list-view-tree/18978 How to set up the tree gtklistview ?
|
||||
|
@ -80,7 +119,7 @@ def setup(widget, item):
|
|||
label = Gtk.Label()
|
||||
expander = Gtk.TreeExpander.new()
|
||||
expander.set_child(label)
|
||||
item.set_child(expander)
|
||||
item.set_child(expander)https://discourse.gnome.org/t/tips-to-initialize-gtk4s-columnview-python/19028
|
||||
|
||||
|
||||
def bind(widget, item):
|
||||
|
|
|
@ -38,7 +38,8 @@ void on_activate_window_creation (GtkApplication *app, gpointer data)
|
|||
GtkTreeListRow is used by GtkTreeListModel to represent items.\
|
||||
It allows navigating the model as a tree and modify the state of rows.\n\
|
||||
https://docs.gtk.org/gtk4/class.TreeListRow.html\n\
|
||||
assertion 'GTK_IS_TREE_LIST_MODEL (self)' failed (ligne 69)\n");
|
||||
assertion 'GTK_IS_TREE_LIST_MODEL (self)' failed (ligne 69)\n\n\
|
||||
https://github.com/kriptolix/gtk4_python3_exemples/blob/main/ListView/tree_view.py\n");
|
||||
gtk_window_set_title (GTK_WINDOW(that_window), "Ignition !");
|
||||
gtk_window_set_default_size (GTK_WINDOW(that_window), 180, 140);
|
||||
GtkWidget *my_scrolling_thing = gtk_scrolled_window_new ();
|
||||
|
@ -57,8 +58,19 @@ static void on_setup_cb (GtkSignalListItemFactory *self, GtkListItem *my_list_it
|
|||
}
|
||||
|
||||
static void on_bind_cb (GtkSignalListItemFactory *self, GtkListItem *my_list_item, gpointer user_data)
|
||||
/* trying to copy : https://github.com/kriptolix/gtk4_python3_exemples/blob/main/ListView/tree_view.py */
|
||||
/* def bind(widget, item): """bind data from the store object to the widget""" */
|
||||
/* expander = item.get_child() */
|
||||
/* label = expander.get_child() */
|
||||
/* row = item.get_item() */
|
||||
/* expander.set_list_row(row) */
|
||||
/* obj = row.get_item() */
|
||||
/* label.set_label(obj.data) */
|
||||
{
|
||||
GtkWidget *my_label = gtk_list_item_get_child (my_list_item);
|
||||
GtkWidget *my_expander = gtk_list_item_get_child (my_list_item);
|
||||
// GtkWidget *my_label = gtk_list_item_get_child (my_list_item);
|
||||
GtkWidget *my_label = gtk_list_item_get_child (my_expander);
|
||||
// GtkTreeListRow *my_row = gtk_tree_list_model_get_row (my_list_item, 0);
|
||||
/* my_string_object is owned by the instance. Caller mustn't change or destroy it. */
|
||||
GtkStringObject *my_string_object = gtk_list_item_get_item (my_list_item);
|
||||
/* The string returned by gtk_string_object_get_string is owned by the instance. */
|
||||
|
|
Loading…
Reference in New Issue