我有一个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()
Run Code Online (Sandbox Code Playgroud)
因此我想知道我想念的是什么.我搜索但找不到重复..(如果他们是一些,你可以指出,我将关闭主题).
注意:我使用的是Python 2.7.10
问题是您没有打包(或网格或放置)您的MainApplication实例.由于您MainApplication扩展了tk.Frame类,因此它的实例是小部件,因此需要打包到它们的主服务器中.
def main():
root = tk.Tk()
app = MainApplication(root) <--- here: where does it go in the root?
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
打包它会起作用:
app.pack()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |