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

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

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

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

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

Q&A

解決済

1回答

1778閲覧

TkInter: 選択されているListBoxの内容を、別Widgetのイベントから変更したいのですが可能ですか

saya24

総合スコア227

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

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

0グッド

0クリップ

投稿2021/10/29 12:55

編集2021/10/29 22:00

リストボックスの内容変更をしたいのですが、.get(該当インデックス) = 希望値
では だめですかね?

Python

1################### 2# 列登録ボタン押下# 3################### 4def column_Add(): 5 selected_idx =tk.ACTIVE 6 lstbox.get(selected_idx) = lstbox.get(selected_idx) + " ✔ " #エラーになる 7 8 9# 3 転記済列の表 10lstbox = tk.Listbox(frmIOMenu, bg="black", exportselection=False, foreground="white", font=("Arial", 16)) 11lstbox.grid(row=3, column=6, rowspan=4, columnspan=4, sticky=tk.E + tk.W + tk.N + tk.S) 12lstbox.bind("<<ListboxSelect>>", lambda e: lstbox_Select()) 13 14# 8 列採用ボタン 15btn_Add = ttk.Button(frmIOMenu, text = "採用", state="disabled", command=column_Add) 16btn_Add.grid(row=8, column=9, sticky=tk.N + tk.S + tk.E+ tk.W) 17

2021/10/30 06:55追記

Listboxのメソッド確認すると insertとdeleteしかないですねぇ
値変更はできないので、該当indexの行を削除して、再度当該indexに挿入するしかないんですかね

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

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

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

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

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

guest

回答1

0

自己解決

本文に追記したとおり、Listboxのウィジェットに 内容変更のようなメソッドは見当たらなかったため 該当行のIndexを 入直し(INSERTとDELETE)で対応しました。

お騒がせしました....

Python

1################### 2# 列登録ボタン押下# 3################### 4def column_Add(): 5 selected_idx =tk.ACTIVE 6 newitem = lstbox.get(selected_idx) + " ✔" 7 lstbox.insert(selected_idx, newitem) 8 lstbox.delete(lstbox.curselection())

投稿2021/10/29 23:37

saya24

総合スコア227

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

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

teamikl

2021/10/30 03:15

Python2.x の頃は、他のリスト・ウィジェットもあったのですが、 ttk.Treeview で対応できるので、保守から外れた経緯があります。 補足で、他の選択肢 a. delete/insert b. listvariable を使い、StringVar のset で表示するリストを更新する  → Pythonのリストとして管理してる場合、   表示内容との同期がとりやすくなります c. ttk.Treeview をリストとして使う  単一列でヘッダなしで同じような見た目に、  itemconfigure で任意の行の表示内容を更新できます。  利点: ttk.Style でスタイル管理が可能
saya24

2021/10/30 13:37

teamiklさん いつもお世話になっております。 b案の存在を完全に見逃していました。リスト変数の方が断然扱いやすそうですね。覚えておきます、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問