Je viens de commencer à utiliser Tkinter récemment, alors peut-être que c'est facile à faire Je n'ai pas trouvé la fonction pour maintenir le bouton enfoncé et le réparer, peu importe où je regardais. Si quelqu'un sait comment le faire, pouvez-vous me le dire?
Je n'ai pas trouvé de moyen de le faire, alors j'ai essayé de le forcer. C'est une manière assez méchante, donc cela peut ne pas être utile, mais je vais la lister ci-dessous.
Je souhaite créer une interface graphique qui modifie les binaires 8 bits à l'aide de boutons.
Est-ce que je ne peux pas continuer à pousser avec le bouton Tkinter? Le bouton peut être désactivé. L'étiquette du bouton (image sur la surface) peut être modifiée Mais le relief du bouton ne peut-il pas être modifié?
J'ai jeté le bouton généré et j'ai essayé de tout recréer avec soulagement en appuyant à nouveau.
BinEditor.py
import sys
import tkinter as tk
class BinEditFrame(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.val = 0x00
self.bits = []
for i in range(8):
btn = tk.Button(self,text=str(i), relief='raised', command=self.callback(i))
btn.pack(sid='right')
self.bits.append(btn)
print("start")
def callback(self, i):
def push():
self.val ^= (1<<i)
print(self.val)
#All Button Delete
for bit in self.bits:
bit.destroy()
self.bits.clear()
#All Button ReCreate
for j in range(8):
if (self.val & (1<<j) > 0):
btn = tk.Button(self,text=str(j), relief='sunken',
command=self.callback(j) )
else:
btn = tk.Button(self,text=str(j), relief='raised',
command=self.callback(j) )
btn.pack(sid='right')
self.bits.append(btn)
return push
if __name__ == "__main__":
print("BinEditor")
win = tk.Tk()
be = BinEditFrame(win)
be.pack()
win.mainloop()
Recommended Posts