コード ```import tkinter window = tkinter.Tk() # model f = tkinter.StringVar() c = tkinter.StringVar() # controller def f2c(): c.set(5 / 9 * (int(f.get()) - 32)) # view frame = tkinter.Frame(window) frame.pack() label = tkinter.Label(frame, text='華氏表現の温度')### label.pack() entry = tkinter.Entry(frame, textvariable=f) entry.pack() label = tkinter.Label(frame, textvariable=c) label.pack() button = tkinter.Button(frame, text='変換', command=f2c) button.pack() button = tkinter.Button(frame, text='終了', command=lambda:window.destroy()) button.pack() window.mainloop() このように、華氏表現の温度を入力すれば摂氏温度が出力されるというコードは書くことができたのですが、最初に摂氏か華氏かを選ぶことができて、かつ、摂氏表現を入力すれば華氏表現が出力され、華氏表現を入力すれば摂氏表現が出力されるためにはどのようにすればよいでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
回答2件
0
おはようございます。
問題文読ませていただきました。
こんな感じでいかがでしょうか?
python
1import tkinter as tk 2 3 4class Application(tk.Frame): 5 # 華氏温度入力用変数 6 f = None 7 # 摂氏温度入力用変数 8 c = None 9 10 # 華氏温度から摂氏温度へ変換する関数 11 def f2c(self): 12 self.c.set(5 / 9 * (float(self.f.get()) - 32)) 13 14 # 摂氏温度から華氏温度へ変換する関数 15 def c2f(self): 16 self.f.set(float(self.c.get()) * 9 / 5 + 32) 17 18 def __init__(self, master=None): 19 # Windowの初期設定を行う。 20 super().__init__(master) 21 22 # Windowの画面サイズを設定する。 23 # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/ 24 self.master.geometry("300x200") 25 26 ############################################## frame Widget START ############################################## 27 28 # Windowを親要素として、frame Widget(Frame)を作成する。 29 # frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/ 30 frame = tk.Frame(self.master) 31 32 # Windowを親要素とした場合に、frame Widgetをどのように配置するのか? 33 # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ 34 frame.pack() 35 36 ############################################## frame Widget END ############################################## 37 38 # self.fをstring型の変数と初期化する。 39 # StringVarについて : https://kuroro.blog/python/K53voPjJuKFfYrjmP8FP/ 40 self.f = tk.StringVar() 41 # self.cをstring型の変数と初期化する。 42 # StringVarについて : https://kuroro.blog/python/K53voPjJuKFfYrjmP8FP/ 43 self.c = tk.StringVar() 44 45 # frame Widget(Frame)を親要素として、label Widgetを作成する。 46 # text : テキスト情報 47 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 48 label = tk.Label(frame, text='摂氏温度') 49 # frame Widget(Frame)を親要素とした場合に、label Widgetをどのように配置するのか? 50 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 51 label.grid(row=0, column=0, padx=10, pady=10) 52 53 # frame Widget(Frame)を親要素として、entry Widgetを作成する。 54 # textvariable : entry Widget内に格納される値をself.cとする。 55 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ 56 entry = tk.Entry(frame, textvariable=self.c) 57 # frame Widget(Frame)を親要素とした場合に、entry Widgetをどのように配置するのか? 58 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 59 entry.grid(row=0, column=1, padx=10, pady=10) 60 61 # frame Widget(Frame)を親要素として、button Widgetを作成する。 62 # text : テキスト情報 63 # command : ボタンがクリックされた場合に実行する関数を指定する。self.f2cとする。 64 # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ 65 button = tk.Button(frame, text='華氏温度を摂氏温度に変換', command=self.f2c) 66 # frame Widget(Frame)を親要素とした場合に、button Widgetをどのように配置するのか? 67 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 68 button.grid(row=0, column=2, padx=10, pady=10) 69 70 # frame Widget(Frame)を親要素として、label Widgetを作成する。 71 # text : テキスト情報 72 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 73 label = tk.Label(frame, text='華氏温度') 74 # frame Widget(Frame)を親要素とした場合に、label Widgetをどのように配置するのか? 75 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 76 label.grid(row=1, column=0, padx=10, pady=10) 77 78 # frame Widget(Frame)を親要素として、entry Widgetを作成する。 79 # textvariable : entry Widget内に格納される値をself.fとする。 80 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ 81 entry = tk.Entry(frame, textvariable=self.f) 82 # frame Widget(Frame)を親要素とした場合に、entry Widgetをどのように配置するのか? 83 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 84 entry.grid(row=1, column=1, padx=10, pady=10) 85 86 # frame Widget(Frame)を親要素として、button Widgetを作成する。 87 # text : テキスト情報 88 # command : ボタンがクリックされた場合に実行する関数を指定する。self.c2fとする。 89 # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ 90 button = tk.Button(frame, text='摂氏温度を華氏温度に変換', command=self.c2f) 91 # frame Widget(Frame)を親要素とした場合に、button Widgetをどのように配置するのか? 92 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 93 button.grid(row=1, column=2, padx=10, pady=10) 94 95# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program 96if __name__ == "__main__": 97 root = tk.Tk() 98 app = Application(master=root) 99 # Windowをループさせて、継続的にWindow表示させる。 100 # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/ 101 app.mainloop()
ご確認のほど、よろしくお願いいたします。????♂️
投稿2021/06/09 21:46
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
分ければ簡単です。
python
1import tkinter 2 3window = tkinter.Tk() 4 5f = tkinter.StringVar() 6c = tkinter.StringVar() 7 8def f2c(): 9 c.set(5 / 9 * (float(f.get()) - 32)) 10 11def c2f(): 12 f.set(float(c.get()) * 9 / 5 + 32) 13 14frame = tkinter.Frame(window) 15frame.pack() 16label = tkinter.Label(frame, text='華氏温度') 17label.grid(row=0, column=0, padx=5, pady=5) 18entry = tkinter.Entry(frame, textvariable=f) 19entry.grid(row=0, column=1, padx=5, pady=5) 20button = tkinter.Button(frame, text='華氏温度を摂氏温度に変換', command=f2c) 21button.grid(row=0, column=2, padx=5, pady=5) 22label = tkinter.Label(frame, text='摂氏温度') 23label.grid(row=1, column=0, padx=5, pady=5) 24entry = tkinter.Entry(frame, textvariable=c) 25entry.grid(row=1, column=1, padx=5, pady=5) 26button = tkinter.Button(frame, text='摂氏温度を華氏温度に変換', command=c2f) 27button.grid(row=1, column=2, padx=5, pady=5) 28button = tkinter.Button(frame, text='終了', command=lambda:window.destroy()) 29button.grid(row=2, column=0, columnspan=3) 30 31window.mainloop()
投稿2019/12/22 09:01
編集2019/12/22 09:03総合スコア5406
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。