質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

767閲覧

”Python" 複数listboxでエラーが出ます。

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/07/14 02:03

編集2019/07/14 05:14

前提・実現したいこと

クラスの継承機能については余り理解できておりませんが、カメラのEV値計算簡単アプリを作成中です。

listboxを二つ作りました。 listbox間を行き来したいのですが、listbox1で数値確定後、listbox2(或いはその逆)に移ると、動作は見たところ正しいのですがエラー表示が出ます。

宜しく対応策教えて下さい。

発生している問題・エラーメッセージ

Python

1 2 3listboxを二つ作りました。 listbox間を行き来したいのですが、listbox1で数値確定後、listbox2(或いはその逆)に移ると、動作は見たところ正しいのですがエラー表示が出ます。 4 5下記のエラーが表示されます 6 7 8Exception in Tkinter callback 9Traceback (most recent call last): 10 File "C:\Users\tak11\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__ 11 return self.func(*args) 12 File "C:\Users\tak11\デスクトップ\ISO_F_T-リストボックス検討1.py", line 47, in show_item 13 self.label_2["text"] = self.listbox_2.get(item_index_2) 14 File "C:\Users\tak11\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 2798, in get 15 return self.tk.call(self._w, 'get', first) 16_tkinter.TclError: bad listbox index "": must be active, anchor, end, @x,y, or a number 17 18### 該当のソースコード 19 20''' 21import tkinter as tk 22 23class TestListbox_1(tk.LabelFrame): 24 def __init__(self, master=None): 25 super().__init__(master, text="ISO") 26 #Listbox 27 self.listbox_1 = tk.Listbox(self, width=8, selectmode="extended") 28 self.listbox_1.bind("<<ListboxSelect>>", self.show_item) 29 li = ["50", "100", "200", "400", "800", "1600", "3200", "6400", "12800", "25600"] 30 for item in li: 31 self.listbox_1.insert(tk.END, item) 32 self.listbox_1.pack() 33 34 #表示用ラベル 35 self.label_1 = tk.Label(self, text="ISO", bg="lightblue") 36 self.label_1.pack() 37 38 def show_item(self, event): 39 #リストクリック時に実行するメソッド 40 item_index_1 = self.listbox_1.curselection() 41 self.label_1["text"] = self.listbox_1.get(item_index_1) 42 43 44class TestListbox_2(tk.LabelFrame): 45 def __init__(self, master=None): 46 super().__init__(master, text="絞り") 47 #Listbox 48 self.listbox_2 = tk.Listbox(self, width=8, selectmode="extended") 49 self.listbox_2.bind("<<ListboxSelect>>", self.show_item) 50 li = ["1.4", "2", "2.8", "4", "5.6", "8", "11", "16", "22", "32"] 51 for item in li: 52 self.listbox_2.insert(tk.END, item) 53 self.listbox_2.pack() 54 55 #表示用ラベル 56 self.label_2 = tk.Label(self, text="絞り", bg="lightgreen") 57 self.label_2.pack() 58 59 def show_item(self, event): 60 #リストクリック時に実行するメソッド 61 item_index_2 = self.listbox_2.curselection() 62 self.label_2["text"] = self.listbox_2.get(item_index_2) 63 64if __name__ == "__main__": 65 root = tk.Tk() 66 root.title("kumasanのEV計算機") 67 root.geometry("300x400") 68 69 70 iso = TestListbox_1(master=root) 71 iso.place(x=20, y=20) 72 73 aperture = TestListbox_2(master=root) 74 aperture.place(x=120, y=20) 75 76 77root.mainloop() 78''' 79 80### 試したこと 81 82クラス継承をしないcodeを書きましたが、そこではlistbox間の移動が出来ませんでした。 83 84### 補足情報(FW/ツールのバージョンなど) 85 86Window10 64bit 87Python ver3.7.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2019/07/14 02:49

インデントがなくなって読めなく(実行できなく)なっています。 ソースコードはコードブロック```で囲んでください。
退会済みユーザー

退会済みユーザー

2019/07/14 05:15

''' import tkinter as tk class TestListbox_1(tk.LabelFrame): def __init__(self, master=None): super().__init__(master, text="ISO") #Listbox self.listbox_1 = tk.Listbox(self, width=8, selectmode="extended") self.listbox_1.bind("<<ListboxSelect>>", self.show_item) li = ["50", "100", "200", "400", "800", "1600", "3200", "6400", "12800", "25600"] for item in li: self.listbox_1.insert(tk.END, item) self.listbox_1.pack() #表示用ラベル self.label_1 = tk.Label(self, text="ISO", bg="lightblue") self.label_1.pack() def show_item(self, event): #リストクリック時に実行するメソッド item_index_1 = self.listbox_1.curselection() self.label_1["text"] = self.listbox_1.get(item_index_1) class TestListbox_2(tk.LabelFrame): def __init__(self, master=None): super().__init__(master, text="絞り") #Listbox self.listbox_2 = tk.Listbox(self, width=8, selectmode="extended") self.listbox_2.bind("<<ListboxSelect>>", self.show_item) li = ["1.4", "2", "2.8", "4", "5.6", "8", "11", "16", "22", "32"] for item in li: self.listbox_2.insert(tk.END, item) self.listbox_2.pack() #表示用ラベル self.label_2 = tk.Label(self, text="絞り", bg="lightgreen") self.label_2.pack() def show_item(self, event): #リストクリック時に実行するメソッド item_index_2 = self.listbox_2.curselection() self.label_2["text"] = self.listbox_2.get(item_index_2) if __name__ == "__main__": root = tk.Tk() root.title("kumasanのEV計算機") root.geometry("300x400") iso = TestListbox_1(master=root) iso.place(x=20, y=20) aperture = TestListbox_2(master=root) aperture.place(x=120, y=20) root.mainloop() ################### ネットより借用 7/12/2019 ################################## """ #リストボックスで選択した値をラベルに表示させる #複数リストボックス検討1.py import tkinter class TestListbox(tkinter.LabelFrame): def __init__(self, master=None): super().__init__(master, text="Listbox") #Listbox self.listbox = tkinter.Listbox(self, selectmode="extended") #1 self.listbox.bind("<<ListboxSelect>>", self.show_item) #2 li = ["aaa", "bbb", "ccc", "ddd", "eee"] #3 for item in li: self.listbox.insert(tkinter.END, item) #4 self.listbox.pack() #表示用ラベル self.label = tkinter.Label(self, text="show_item", bg="lightblue") self.label.pack() def show_item(self, event): #リストクリック時に実行するメソッド item_index = self.listbox.curselection() #5 self.label["text"] = self.listbox.get(item_index) #6 if __name__ == "__main__": root = tkinter.Tk() f = TestListbox(master=root) f.pack() root.mainloop() '''
guest

回答1

0

ベストアンサー

codeの記入方法が悪くて実行できないようですので、一旦解決済みにして再掲載させて頂きます。 お手数おかけいたします。

投稿2019/07/14 23:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問