Python Tkinter OOP布局配置
我正在尝试用tkinter构建一个应用程序。 布局在没有OO原则的情况下工作,但我很难理解如何将其移动到OO 布局如下图所示。(1280x720px)Python Tkinter OOP布局配置,python,oop,tkinter,layout,Python,Oop,Tkinter,Layout,我正在尝试用tkinter构建一个应用程序。 布局在没有OO原则的情况下工作,但我很难理解如何将其移动到OO 布局如下图所示。(1280x720px) 我有以下资料: 顶部带有用户名/欢迎信息的横幅,右角有徽标,columnspan=8 左侧带有按钮的菜单栏,分为两行(第1行:第6行,第2行:第4行) 工作区(白色块)有一个框架,我将在其中添加一个笔记本,每个菜单按钮打开一个不同的笔记本页面 制作此OO的最佳方法是什么?(我仍在学习,对OO来说非常陌生)没有直接的翻译,因为一切都取决于你
我有以下资料:
- 顶部带有用户名/欢迎信息的横幅,右角有徽标,columnspan=8
- 左侧带有按钮的菜单栏,分为两行(第1行:第6行,第2行:第4行)
- 工作区(白色块)有一个框架,我将在其中添加一个笔记本,每个菜单按钮打开一个不同的笔记本页面
制作此OO的最佳方法是什么?(我仍在学习,对OO来说非常陌生)没有直接的翻译,因为一切都取决于你的需要。 如果你创建一个简单的程序,你可以创建类,创建每个按钮,标签,框架。。。在构造函数中。创建时,必须选择布局管理器网格、打包或放置中的一个。然后创建函数,就完成了。如果你处理更大的项目,并且有大量的标签、按钮等。。您可能需要为每个容器创建容器。 在您的情况下,您不需要很多功能和按钮,因此您可能需要使用基本方法:
from tkinter import *
class name_gui:
def __init__(self, top):
#specify main window
self.top = top
self.title = top.title("name_gui")
self.minsize = top.geometry("1280x720")
self.resizable = top.resizable(height=False,width=False)
#create buttons,Labels,Frames..
self.Button1 = Button(top,text="Button1",command=self.exa_fun)
self.Button2 = Button(top,text="Button2",command=self.exa_fun2)
#place them, choose grid/place/pack
self.Button1.place(relx=0.5,rely=0.5)
self.Button2.place(relx=0.5,rely=0.2)
#create your functions
def exa_fun(self):
pass
def exa_fun2(self):
pass
top = Tk()
exa_gui = name_gui(top)
top.mainloop()
如果您想将代码从面向过程更改为面向对象,并且认为有一种神奇的方法可以避免编写新代码,那么您就错了。我的建议是,让你的工作考试保持原样。就因为它有效。在学习OOP时,您可以通过复制和粘贴来翻译代码。它仍然需要一些努力,但当你把工作示例搞砸时,你不会生气。最好的方法是先真正学习
OOP
,然后再翻译它。谢谢你,这很有效,我的尝试使我在某个地方犯了一个错误,一直在打开一个双窗口。这很有效。谢谢你,不客气。以下是您需要的一切: