私はTkinter
アプリを持っています。フレーム内にいくつかのボタンを入れて、このフレームをメインウィンドウに配置したいと思っています。Tkinter - ボタンを含むクラス
ただし、コードを実行すると空のウィンドウが返されます。私は、このように私は欠場か疑問
import Tkinter as tk
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.navbar = NavBar(self)
self.navbar.grid(row=0, column=0)
class NavBar(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.parent = parent
self.fetchDataBtn = tk.Button(self, text='Fetch data')
self.filterDataBtn = tk.Button(self, text='Filter data')
self.fetchDataBtn.pack(padx=5, pady=10, side=tk.LEFT)
self.filterDataBtn.pack(padx=5, pady=20, side=tk.LEFT)
def main():
root = tk.Tk()
app = MainApplication(root)
root.mainloop()
if __name__ == '__main__':
main()
:だから私は原子コードがある..私は、モジュール式のクラスでTkinter
アプリを構築するために、完全にどのように欠場と思います。私は検索しましたが、重複を見つけることができません..(彼らがいくつかの場合は、あなたが指摘してトピックを閉じるでしょう)。
NB:私は、Python 2.7.10を使用しています
私の好みは、クラスの外で 'init'I/Oの後に' pack() 'することです。 –
@ReblochonMasqueそうすることに伴う問題は、インスタンスの配置方法を制御できなくなることです。代わりに 'grid'を使いたいのですが?たとえば、同じウィジェットの4つのインスタンスを正方形として配置するとします。彼らの共通の '__init__'の最後には何を書いていますか? –
ありがとう、私はルートに自分のフレームを見つけることとのポイントを完全に逃した... –