Tiré de GTK+ Reference Manual

GtkRadioButton

GtkRadioButton — Choix parmis des cases à cocher multiples.

Synopsis

#include <gtk/gtk.h>


GtkRadioButton;
GtkWidget* gtk_radio_button_new (GSList *group);
GtkWidget* gtk_radio_button_new_from_widget (GtkRadioButton *group);
GtkWidget* gtk_radio_button_new_with_label (GSList *group,
const gchar *label);
GtkWidget* gtk_radio_button_new_with_label_from_widget
(GtkRadioButton *group,
const gchar *label);
GtkWidget* gtk_radio_button_new_with_mnemonic (GSList *group,
const gchar *label);
GtkWidget* gtk_radio_button_new_with_mnemonic_from_widget
(GtkRadioButton *group,
const gchar *label);
#define gtk_radio_button_group
void gtk_radio_button_set_group (GtkRadioButton *radio_button,
GSList *group);
GSList* gtk_radio_button_get_group (GtkRadioButton *radio_button);

Hiérarchie de l'objet

  GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBin
+----GtkButton
+----GtkToggleButton
+----GtkCheckButton
+----GtkRadioButton

Interfaces Implémentés

GtkRadioButton implémente AtkImplementorIface.

Propriétés

  "group"                    GtkRadioButton        : Ecrire

Signaux

"group-changed"                                  : Exécute Premier

Description

Un seul bouton radio s'utilise avec les mêmes fonctions basiques que pour un  GtkCheckButton, comme sa position dans la hiérarchie des objets le montre. C'est seulement quand des boutons radio multiples sont groupés qu'ils se tranforment en composant différent pour l'interface utilisateur avec des droits propres.

Tout radio bouton est le membre d'un groupe de radio boutons. Quand un radio bouton est sélectionné, tous les autres radio boutons du même groupe sont désélectionnés. L'utilisation d'un GtkRadioButton permet à l'utilisateur de faire un choix parmis plusieurs options.

Les widget radio bouton sont créés avec gtk_radio_button_new(), en passant  NULL comme argument si c'est le premier radio bouton du groupe.  Pour les appels suivant, le groupe dans lequel vous désirez ajouter le bouton doit être passé en argument.  En option,  gtk_radio_button_new_with_label() peut être utilisé si vous voulez placer un label de texte dans la radio bouton.

Alternativement, pour ajouter des widgets dans un groupe de radio boutons existants, utilisez gtk_radio_button_new_from_widget() pour un  GtkRadioButton qui appartient déjà à un groupe. La fonction gtk_radio_button_new_with_label_from_widget() est également fournie. 

Pour rechercher le groupe auquel est assigné un  GtkRadioButton, utilisez gtk_radio_button_get_group().

Pour supprimer un  GtkRadioButton d'un groupe et le placer dans un autre groupe utilisez gtk_radio_button_set_group().

La liste de groupes ne nécessite pas d'être libérée, comme chaque  GtkRadioButton sera supprimé avec son item dans la liste quand  il sera détruit.

Exemple 1. Comment créer un groupe de deux radio boutons.

void create_radio_buttons (void) {

GtkWidget *window, *radio1, *radio2, *box, *entry;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
box = gtk_vbox_new (TRUE, 2);

/* Créer un radio bouton avec un widget GtkEntry */
radio1 = gtk_radio_button_new (NULL);
entry = gtk_entry_new ();
gtk_container_add (GTK_CONTAINER (radio1), entry);


/* Créer un radio bouton avec un label */
radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio1),
"I'm the second radio button.");

/* Les placer dabs une boîte, puis montrer tous les widgets */
gtk_box_pack_start (GTK_BOX (box), radio1, TRUE, TRUE, 2);
gtk_box_pack_start (GTK_BOX (box), radio2, TRUE, TRUE, 2);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_widget_show_all (window);
return;
}

Quand un bouton non sélectionné d'un groupe est cliqué, le bouton reçoit un signal  "toggled" (permuté),ainsi que le bouton précédemment choisi. Dans le gestionnaire de  "toggled", gtk_toggle_button_get_active() peut être utilisé pour déterminer si le bouton a été sélectionné ou déselectionné.

Détails

GtkRadioButton


typedef struct _GtkRadioButton GtkRadioButton;

Contient des données privées qui peuvent être seulement lues ou manipulées avec les fonctions présentées plus bas.


gtk_radio_button_new ()

GtkWidget*          gtk_radio_button_new                (GSList *group);

Crée un nouveau  GtkRadioButton. To be of any practical value, un widget doit être emballés dans le radio bouton.

group : groupe de radio bouton existant ou  NULL si vous créez un nouveau groupe.
Retourne : un nouveau radio bouton.

gtk_radio_button_new_from_widget ()

GtkWidget*          gtk_radio_button_new_from_widget    (GtkRadioButton *group);

Crée un nouveau GtkRadioButton en l'ajoutant au même groupe que  group. Comme avec gtk_radio_button_new(), un widget doit être emballés dans le radio bouton.

group : un  GtkRadioButton existant.
Retourne : un nouveau radio bouton

gtk_radio_button_new_with_label ()

GtkWidget*          gtk_radio_button_new_with_label     (GSList *group,
const gchar *label);

Crée un nouveau GtkRadioButton avec un label texte.

group : un groupe de radio boutons existant, ou NULL si vous créez un nouveau groupe.
label : chaîne à afficher à côté du radio bouton
Retourne : un nouveau radio bouton

gtk_radio_button_new_with_label_from_widget ()

GtkWidget*          gtk_radio_button_new_with_label_from_widget
(GtkRadioButton *group,
const gchar *label);





Crée un nouveau GtkRadioButton avec un label texte en l'ajoutant au même groupe que  group.

group : un  GtkRadioButton existant.
label : chaîne à afficher à côté du radio bouton
Retourne : un nouveau radio bouton

gtk_radio_button_new_with_mnemonic ()

GtkWidget*          gtk_radio_button_new_with_mnemonic  (GSList *group,
const gchar *label);





Crée un nouveau GtkRadioButton contenant un label, en l'ajoutant au même groupe que celui de group. Le label sera créé en utilisant gtk_label_new_with_mnemonic(), aussi des underscores indiquent dans  label le mnémonique pour le bouton.

group : groupe de radio boutons
label : texte du bouton avec un underscore à côté du caractère mnémonique.
Retourne : un nouveau GtkRadioButton

gtk_radio_button_new_with_mnemonic_from_widget ()

GtkWidget*          gtk_radio_button_new_with_mnemonic_from_widget
(GtkRadioButton *group,
const gchar *label);

Crée un nouveau  GtkRadioButton contenant un label. Le label sera créé en utilisant  gtk_label_new_with_mnemonic(), aussi des underscores indiqueront dans le label le mnémonique pour le bouton.

group : widget pour obtenir le radio groupe
label : texte du bouton avec un underscore à côté du caractère mnémonique.
Retourne : un nouveau GtkRadioButton

gtk_radio_button_group

#define gtk_radio_button_group gtk_radio_button_get_group

Attention

gtk_radio_button_group est dépréciée et ne doit plus être utilisée dans un nouveau code.

Utilisez  gtk_radio_button_get_group() à la place.


gtk_radio_button_set_group ()

void                gtk_radio_button_set_group          (GtkRadioButton *radio_button,
GSList *group);





Définit le groupe de  GtkRadioButton. Il faut noter que cela ne peut pas changer la disposition de votre interface, aussi si vous changé le groupe,  il est probable que vous deviez réorganiser l'interface utilisateur pour refléter ces changements.

radio_button : un GtkRadioButton.
group : groupe de radio boutons existant, comme un groupe retourné par gtk_radio_button_get_group().

gtk_radio_button_get_group ()

GSList*             gtk_radio_button_get_group          (GtkRadioButton *radio_button);





Recherche le groupe assigné à un radio bouton

radio_button : un GtkRadioButton.
Retourne : une liste liée contenant tous les radio boutons du groupe auquel appartient radio_button.

Détails des propriétés

La propriété "group

  "group"                    GtkRadioButton        : Ecrire





Définit un nouveau groupe pour un radio bouton.

Détails des Signaux

Le signal "group-changed" 

void                user_function                      (GtkRadioButton *style,
gpointer user_data) : Exécute Premier





Emis quand le groupe de radio boutons auquel un radio bouton appartient change. Ce signal est émis quand le bouton radio isolé est placé dans un groupe de 2 ou plusieurs boutons, ou vice-versa, et quand un bouton est déplacé d'un groupe de deux ou plusieurs boutons vers un autre groupe, mais jamais quand la composition du groupe auquel le bouton appartient change.

style : objet qui reçoit le signal
user_data : donnéesutilisateur définie quand le gestionnaire du signal a été connecté.

Depuis 2.4

Voir Aussi

GtkOptionMenu

autre méthode possible de faire un choix parmis plusieurs propositions.