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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1190閲覧

<Python>GUIで選択した値をリストから削除

maaaaaaaaaa16

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/03/22 14:39

編集2022/03/22 14:44

<Python>GUIで選択した値をリストから削除

1つ目のドロップダウンリストで選択した値をリストから削除し、2つ目のドロップダウンリストではそれ以外の値を選択できるようにしたいです。
下記の通りの実装をするとエラーが発生します。
何か方法はありますでしょうか。

ソースコード

Python

1import tkinter 2from tkinter import ttk 3 4main_win = tkinter.Tk() 5main_win.title("PDFを結合する") 6main_win.geometry("500x120") 7 8main_frm = ttk.Frame(main_win) 9main_frm.grid(column=0, row=0, sticky=tkinter.NSEW, padx=5, pady=5) 10 11folder_label = ttk.Label(main_frm, text="フォルダ指定") 12folder_box = ttk.Entry(main_frm) 13folder_btn = ttk.Button(main_frm, text="参照") 14 15master = ["a", "b", "c"] 16order_label1 = ttk.Label(main_frm, text="①") 17order_comb1 = ttk.Combobox(main_frm, values=master, width=10) 18order_comb1.current() 19master.remove(order_comb1.get()) 20order_label2 = ttk.Label(main_frm, text="②") 21order_comb2 = ttk.Combobox(main_frm, values=master, width=10) 22order_comb2.current() 23 24app_btn = ttk.Button(main_frm, text="実行") 25 26folder_label.grid(column=0, row=0, pady=10) 27folder_box.grid(column=1, row=0, sticky=tkinter.EW, padx=5) 28folder_btn.grid(column=2, row=0) 29order_label1.grid(column=0, row=1) 30order_comb1.grid(column=1, row=1, sticky=tkinter.W, padx=5) 31order_label2.grid(column=0, row=2) 32order_comb2.grid(column=1, row=2, sticky=tkinter.W, padx=5) 33app_btn.grid(column=1, row=3) 34 35main_win.columnconfigure(0, weight=1) 36main_win.rowconfigure(0, weight=1) 37main_frm.columnconfigure(1, weight=1) 38 39main_win.mainloop()

エラーメッセージ

ValueError: list.remove(x): x not in list

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

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

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

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

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

guest

回答1

0

プログラムは上から順番に実行され、
master.remove(order_comb1.get())
order_comb1.get() ではまだ何も選択されていないので '' が返り、
master.remove('')
を実行しますが、そんな項目はないためエラーになっています。

python

1>>> master = ["a", "b", "c"] 2>>> master.remove('') 3Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5ValueError: list.remove(x): x not in list

項目が選択されたら削除するようにイベント処理を書きましょう。

投稿2022/03/23 03:31

編集2022/03/23 03:33
shiracamus

総合スコア5406

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問