Ich habe vor kurzem angefangen, Tkinter zu verwenden, also ist es vielleicht einfach Egal wo ich hinschaute, ich konnte nicht die Möglichkeit finden, den Knopf gedrückt zu halten und ihn zu verriegeln. Wenn jemand weiß, wie es geht, kannst du es mir sagen?
Ich konnte keinen Weg finden, es zu tun, also versuchte ich es zu erzwingen. Es ist ein ziemlich böser Weg, daher ist er vielleicht nicht hilfreich, aber ich werde ihn unten auflisten.
Ich möchte eine GUI erstellen, die 8-Bit-Binärdateien mithilfe von Schaltflächen bearbeitet.
Kann ich nicht weiter mit dem Tkinter-Knopf drücken? Schaltfläche kann deaktiviert werden. Die Tastenbezeichnung (Bild auf der Oberfläche) kann geändert werden Aber kann die Knopfentlastung nicht geändert werden?
Ich habe die generierte Schaltfläche verworfen und versucht, alles mit Erleichterung neu zu erstellen, als es erneut gedrückt wurde.
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