Comment créer un tkinter bouton à bascule?
J'ai travaillé sur un éditeur de texte en utilisant Tkinter dans Python 2.7.
Une fonctionnalité que je suis en train de mettre en œuvre est le Mode Nuit, où l'utilisateur peut basculer entre un fond noir et un peu de l'un, qui passe de la lumière à l'obscurité avec un clic de bouton à bascule.
from Tkinter import *
from tkSimpleDialog import askstring
from tkFileDialog import asksaveasfilename
from tkFileDialog import askopenfilename
from tkMessageBox import askokcancel
Window = Tk()
Window.title("TekstEDIT")
index = 0
class Editor(ScrolledText):
Button(frm, text='Night-Mode', command=self.onNightMode).pack(side=LEFT)
def onNightMode(self):
if index:
self.text.config(font=('courier', 12, 'normal'), background='black', fg='green')
else:
self.text.config(font=('courier', 12, 'normal'))
index = not index
Cependant, sur l'exécution du code, c'est toujours dans le mode nuit et la bascule ne fonctionne pas. De l'aide.
Code Source: http://ideone.com/IVJuxX
OriginalL'auteur Potato_head | 2014-04-18
Vous devez vous connecter pour publier un commentaire.
L'arrière-plan et fg sont définies uniquement dans le cas de la clause. Vous avez besoin de les mettre aussi dans le
else
clause:c'est à dire,
UnboundLocalError
est en raison de l'affectation deindex
qui en fait une variable locale par défaut lorsque vous voulez vraiment pour faire référence à la variable globale. La solution est d'ajouter la déclarationglobal index
l'intérieur de la fonction. Mais une meilleure solution serait d'éviter d'utiliser une mutable mondiale et, au lieu de faireindex
une instance de l'attribut,self.index
.OriginalL'auteur unutbu
Vous pouvez importer bibliothèque tkinter (Utilisation de la majuscule pour python 2.7):
Créer tkinter, objets...
...et tkinter bouton
Maintenant créer un nouveau bouton de commande appelé "basculer" dans le but de créer un effet de "basculer" lorsque vous appuyez sur lecture sur le soulagement de la propriété (creux ou surélevé) :
À la fin appliquer ce comportement sur votre bouton:
Je ne sais pas bien l'anglais mais je sais très bien python: Qu'entendez-vous formaté propely? Pour Python 2.7 fonctionne très bien !!!! Le copier et de le coller dans un fichier texte et l'enregistrer en tant que .py! Tester avant de donner un mauvais commentaires!!!
Au moment où j'ai écrit le commentaire, le corps de
toggle
a été mis en retrait le même que ledef
déclaration et vous pourriez pas copier et coller. Regardez l'histoire de l'modifications et vous verrez que votre version originale a été modifié par quelqu'un d'autre pour fixer l'indentation.Ce n'était pas un commentaire négatif, j'ai été en indiquant simplement un fait. Je ne veux pas modifier la réponse parce que j'ai pensé que vous pourriez ne pas savoir comment formater correctement (depuis qu'il a été à l'origine de la mauvaise), et en faisant de vous le réparer vous apprendre comment mettre en forme vos réponses. Je suis désolé si vous avez été offensé. Ma seule intention est de vous aider à écrire une meilleure réponse.
Il aurait été mieux si vous avez modifié cette réponse, que de proposer une autre réponse à la même information.
OriginalL'auteur Albe