前提・実現したいこと
tkinterでEntryに数字を入力してボタンを押すと、fizzbuzzを判定しListboxに結果を返すプログラムを作って言います。
発生している問題・エラーメッセージ
大方の処理は完成したのですが、Listboxの横にスクロールバーを配置したいのですが、Listboxの下にスクロールバーが配置されてしまいます。grid(row)を同じ数値にしているのですが、なぜでしょうか?
該当のソースコード
python3
1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3 4from tkinter import * 5from tkinter import ttk 6 7root = Tk() 8root.title(u'Fizz Buzz') 9 10#FizzBuzz 11def fizzbuzz(n): 12 fzbz = "Fizz Buzz" 13 fz = "Fizz" 14 bz = "Buzz" 15 try: 16 n = int(n) 17 except ValueError: 18 return Entry1.delete(0, END) 19 if n % 15 == 0: 20 resltfizbuz(fzbz) 21 elif n % 3 == 0: 22 resltfizbuz(fz) 23 elif n % 5 == 0: 24 resltfizbuz(bz) 25 else: 26 resltfizbuz(n) 27 Entry1.delete(0,END) 28def resltfizbuz(reslt): 29 Listbox1.insert(END,reslt) 30 31frame = Frame(root,width=50) 32frame.grid() 33 34#Widgets 35Entry1 = Entry(frame, width=50) 36Entry1.bind("<Return>", lambda event:fizzbuzz(Entry1.get())) 37Entry1.grid(row=0) 38 39Listbox1 = Listbox(frame, width=30) 40Listbox1.grid(row=1, column=0) 41 42Scroll = ttk.Scrollbar(orient=VERTICAL, command=Listbox1.yview) 43Listbox1['yscrollcommand'] = Scroll.set 44Scroll.grid(row=1, column=1, sticky=(N,S)) 45 46 47Button1 = Button(text=u'FizzBuzz',command=lambda: fizzbuzz(Entry1.get())) 48Button1.grid(row=2) 49 50root.mainloop()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/07 06:50
退会済みユーザー
2018/03/07 08:29