Créez une Spinbox qui peut être affichée dans HEX avec Python GUI Tkinter.
Spinbox ne prend pas en charge HEX même si vous utilisez l'option de format dans Tkinter. Cependant, il semble que les ajouts internes soient compatibles avec HEX. (incrément = 1 est également valable pour HEX) J'ai écrit un exemple de programme qui montre explicitement le nombre d'octets comme suit.
HexSpinbox.py
import tkinter as tk
class HexSpinbox(tk.Spinbox):
def __init__(self, *args, **kwargs):
self.var = tk.StringVar()
self.bytenum = kwargs.pop('bytenum')
max_val = 0x1<<(self.bytenum*8)
super().__init__(*args, **kwargs, textvariable=self.var, from_=0,to=max_val,
increment=1, command=self.cange )
def set(self, val):
s = "0x{:0%dx}" % (self.bytenum*2)
self.var.set(s.format(int(val)))
def get(self):
hstr = super().get()
return int(hstr, 16)
def cange(self):
val = super().get()
self.set(val)
if __name__ == "__main__":
print("HexSpinbox")
win = tk.Tk()
hex = HexSpinbox(win, bytenum=2)
hex.set(0xAA55)
hex.pack()
win.title("HexSpinbox test")
win.mainloop()
Recommended Posts