tkinterのEntryを用いてテキストボックスに入力された値を数値として取得したいのですがうまくいきません。そもそも文字列としても認識されていないようです。どのようにすればよいでしょうか。
※EntryはkeyInput関数で、取得はgetkey関数で行なっています。
python
1from mergeSort import mergeSortClass as ms 2from transition import TransitionRoutine 3import tkinter as tk 4 5 6class binarySearchClass(TransitionRoutine): 7 def __init__(self,master=None,**kwargs): 8 super().__init__() 9 self.keyInput() 10 self.binSearch(0,len(self.lines),self.keyValue) 11 12 13 14 def binSearch(self,left,right,key): 15 key = self.keyValue 16 mylist = self.lines 17 while left < right: 18 mid = (left + right) // 2 19 if mylist[mid] == key: 20 return mid 21 elif key < mylist[mid]: 22 return self.binSearch(left,mid,key) 23 else: 24 return self.binSearch(mid+1,right,key) 25 26 return -1 27 28 def keyInput(self): 29 30 keyframe = tk.Toplevel() 31 keyframe.title("キー入力") 32 keyframe.geometry('300x300') 33 keyframe.grid() 34 35 lbl = tk.Label(master=keyframe,text='キーを入力してください') 36 lbl.grid() 37 38 var = tk.StringVar() 39 keytxt = tk.Entry(master = keyframe,width=40,textvariable = var) 40 keytxt.grid() 41 42 self.keytxt = keytxt 43 self.var = var 44 45 okButton = tk.Button( 46 master = keyframe, 47 text = "OK", 48 width = 10, 49 bg = "#dc143c", 50 fg = "#ffffff", 51 command = self.getkey() 52 ) 53 okButton.grid(column=0,row=2,sticky=tk.NW) 54 55 56 57 def getkey(self): 58 self.keyValue = self.var.get() 59 print(self.keyValue) 60 61
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/12 19:57
2020/01/12 23:34
2020/01/26 08:56