TkinterでBinaryで表示可能なSpinboxを作る
先ほど投稿した記事の続き
https://qiita.com/Nomisugi/items/cb2fa4f26cdf0a7888c5
Python TkinterのSpinboxでBinary対応させるコードを書いてみる。
TkinterのSpinboxは内部的にもBinaryに対応しておらず、加算結果を0か1で戻します。
その性質を利用して、コードを記述してみました。
このサンプルコードは8bit固定コードとなります。
: Binspinbox.py
import tkinter as tk
class BinSpinbox(tk.Spinbox):
def __init__(self, *args, **kwargs):
self.var = tk.StringVar()
super().__init__(*args, **kwargs, textvariable=self.var, from_=0,to=0xff,
increment=1, command=self.cange )
self.val = 0
def set(self, val):
self.val = val
self.var.set("0b{:08b}".format(int(val)))
def get(self):
hstr = self.var().get()
return int(hstr, 2)
def cange(self):
val = super().get()
print(val)
if(val == '1'):
self.val = self.val+1
if(self.val > 0xff):
self.val = 0x00
else:
if(self.val == 0x00 ):
self.val = 0xff
else:
self.val = self.val-1
self.set(self.val)
if __name__ == "__main__":
print("BinSpinbox")
win = tk.Tk()
hex = BinSpinbox(win)
hex.set(0x55)
hex.pack()
win.title("BinSpinbox test")
win.mainloop()
Author And Source
この問題について(TkinterでBinaryで表示可能なSpinboxを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/Nomisugi/items/65f791edff83338624f0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .