2009-09-05 8 views
0

Je voudrais supprimer la frontière sur un gtk.Button et également définir sa taille fixe. Comment puis-je accomplir cela? Mon bouton ressemble que:Supprimer la bordure intérieure sur gtk.Button

 
b = gtk.Button() 
b.set_relief(gtk.RELIEF_NONE) 

Merci! p.d: J'utilise pygtk

Répondre

2

Vous pouvez utiliser gtk.Widget.set_size_request pour définir une taille fixe pour le widget. Notez que c'est généralement une mauvaise idée, car l'utilisateur peut vouloir une taille de police plus grande que ce que vous aviez prévu, etc.

En ce qui concerne la suppression de la bordure, gtk.Button peut souvent prendre plus de place que vous le souhaitez . Vous pouvez essayer de définir certaines des propriétés de style telles que "inner-border" à 0 et voir si cela obtient le résultat souhaité. Si vous avez besoin du plus petit bouton possible, vous devriez juste gtk.Label à l'intérieur d'un gtk.EventBox et gérer les clics sur la boîte d'événement. Cela utilisera le moins de pixels.

-1

Je ne pense pas que le EventBox peut envoyer des événements de bouton comme « activé » et « cliqué ».

+0

oui, vous pouvez! En fait, j'ai fini par utiliser cette alternative pour résoudre mes problèmes frontaliers. Pour ajouter l'événement clicked vous devez utiliser: eventboxobject.connect (« bouton-presse-événement », callback) – Lucia

+0

« Appuyez sur le bouton » est un événement. Je dis spécifiquement "événements de bouton". "Cliqué", si je ne me trompe pas, est un événement exclusif de Button, tandis que "bouton presse" est assez commun. Confirmez-vous que chaque événement lié à Button est également implémenté par EventBox? Il n'y a pas quelques programmes là-bas qui évitent d'employer le bouton pour l'esthétique, de perdre les avantages du widget Button, par exemple recevoir un événement "Cliqué" au lieu de "Bouton enfoncé". Si cela résout votre problème, très bien. Mais s'il vous plaît prêter attention à ce détail. – dividebyzero

Questions connexes