Je crée un éditeur de texte trivial (en tant qu'exercice) dans GTK en utilisant Glade, GtkBuilder et C. J'ai un menu d'édition avec Couper, Copier et Coller ainsi qu'un GtkTextView pour le texte. GtkTextView lie automatiquement les séquences couper/copier/coller pour lui-même (et fournit même des éléments de menu si vous faites un clic droit). Je souhaite connecter les éléments de menu Couper, Copier et Coller dans ma barre de menus à mon affichage de texte afin qu'ils agissent comme prévu.Comment se connecter GtkTextView à GtkMenuItem
Notez qu'il s'agit d'une connexion bidirectionnelle. (1) Lorsque l'un des objets GtkMenuItem Couper, Copier ou Coller est activé, il indique à GtkTextView de faire quelque chose. (2) Lorsqu'une sélection est faite ou effacée dans GtkTextView, Couper et Copier sont respectivement activés ou désactivés (voir gedit comme exemple). De plus, (3) que Paste soit activé dépend de l'état du presse-papiers.
Comment connecter mes éléments de menu Couper, Copier et Coller à la vue de texte? Y a-t-il un moyen de le faire dans Glade, ou mon programme C aura-t-il besoin de code supplémentaire pour cela? Existe-t-il un moyen simplifié de le faire, ou dois-je mettre en œuvre les trois comportements mentionnés dans le paragraphe ci-dessus manuellement?
Merci, cela a fonctionné (je ne savais pas au début que vous pouviez vous connecter à une propriété via "notify :: property-name"). Cependant, je pense avoir trouvé une meilleure façon de gérer le presse-papiers: connectez-vous au signal "owner-change" du presse-papiers. Ce signal semble être émis chaque fois que le presse-papiers est mis à jour. Sur mon système, cela a fonctionné pour tous les cas marginaux auxquels je pouvais penser. –