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

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

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

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

Q&A

解決済

1回答

1377閲覧

Pythonのbuttonの表示結果をターミナルではなくフレームに

gymgym

総合スコア97

Python

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

0グッド

0クリップ

投稿2017/12/11 02:42

Python

1from tkinter import * 2from tkinter import ttk 3 4def button_click(): 5 show_selection() 6 7def show_selection(): 8 for i in lb.curselection(): 9 if i == 0 : 10 print("こんにちは") 11 elif i == 1 : 12 print("kko") 13 14if __name__ == '__main__': 15 root = Tk() 16 root.title('Scrollbar 1') 17 18 # Frame 19 frame1 = ttk.Frame(root, padding=10) 20 frame1.grid() 21 22 # Listbox 23 currencies = (1, 2, 4, 5, 6, 7) 24 v1 = StringVar(value=currencies) 25 lb = Listbox(frame1, listvariable=v1,height=3) 26 lb.grid(row=0, column=0) 27 28 # Scrollbar 29 scrollbar = ttk.Scrollbar( 30 frame1, 31 orient=VERTICAL, 32 command=lb.yview) 33 lb['yscrollcommand'] = scrollbar.set 34 scrollbar.grid(row=0,column=1,sticky=(N,S)) 35 36 #Button 37 button1 = ttk.Button(frame1, text='OK', command=button_click) 38 button1.grid(row=1, column=0, columnspan=2) 39 40 root.mainloop()

このコードの「こんにちは」などの表示結果をターミナルではなくボタンなど表示されるフレーム上に結果を表示したいです。

アドバイスを宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

質問にあるコードを少し改造して、フレーム上に結果を表示するように変更してみました。

変更点は

  • 結果の表示領域として Label を追加
  • Buttonの場所をLabelの分だけ下げる
  • print("") の部分を、label.config(text="") に変更

の3箇所です。

Python

1from tkinter import * 2from tkinter import ttk 3 4def button_click(): 5 show_selection() 6 7# labelに表示するように修正 8def show_selection(): 9 for i in lb.curselection(): 10 if i == 0 : 11 label.config(text="こんにちは") 12 elif i == 1 : 13 label.config(text="kko") 14 15if __name__ == '__main__': 16 root = Tk() 17 root.title('Scrollbar 1') 18 19 # Frame 20 frame1 = ttk.Frame(root, padding=10) 21 frame1.grid() 22 23 # Listbox 24 currencies = (1, 2, 4, 5, 6, 7) 25 v1 = StringVar(value=currencies) 26 lb = Listbox(frame1, listvariable=v1,height=3) 27 lb.grid(row=0, column=0) 28 29 # Scrollbar 30 scrollbar = ttk.Scrollbar( 31 frame1, 32 orient=VERTICAL, 33 command=lb.yview) 34 lb['yscrollcommand'] = scrollbar.set 35 scrollbar.grid(row=0,column=1,sticky=(N,S)) 36 37 # Label (新規追加) 38 label = Label(frame1, width=18) 39 label.grid(row=1, column=0, columnspan=2) 40 41 # Button (Labelの分だけrowをインクリメント) 42 button1 = ttk.Button(frame1, text='OK', command=button_click) 43 button1.grid(row=2, column=0, columnspan=2) 44 45 root.mainloop()

投稿2017/12/11 08:57

magichan

総合スコア15898

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問