今天介绍一个桌面应用程序开发经常用到的主窗体调用子窗体的项目模型。这个模型是开发桌面应用程序的基本模型。90%的的应用软件设计原理都源自这一基础模型。所以,要提高编程质量和效率,学懂弄通这一基础模型至关重要。
主窗体服务器托管网代码
class MainPage(object):
def __init__(self, master=None):
self.root = Tk() #定义内部变量root
self.root.geometry('%dx%d' % (600, 300)) #设置窗口大小
self.createPage()
def createPage(self):
self.inputPage = InputFrame(self.root) # 创建不同Frame
self.queryPage = QueryFrame(self.root)
self.countPage = CountFrame(self.root)
self.aboutPage = AboutFrame(self.root)
self.inputPage.pack() #默认显示数据录入界面
menubar = Menu(self.root)
menubar.add_command(label='数据录入', command = self.inputData)
menubar.add_command(label='查询', command = self.queryData)
menubar.add_command(label='统计', command = self.countData)
menubar.add_command(label='关于', command = self.aboutDisp)
self.root['menu'] = menubar # 设置菜单栏
def inputData(self):
self.inputPage.pack()
self.queryPage.pack_forget()
self.countPage.pack_forge服务器托管网t()
self.aboutPage.pack_forget()
def queryData(self):
self.inputPage.pack_forget()
self.queryPage.pack()
self.countPage.pack_forget()
self.aboutPage.pack_forget()
def countData(self):
self.inputPage.pack_forget()
self.queryPage.pack_forget()
self.countPage.pack()
self.aboutPage.pack_forget()
def aboutDisp(self):
self.inputPage.pack_forget()
self.queryPage.pack_forget()
self.countPage.pack_forget()
self.aboutPage.pack()
子窗体代码
class InputFrame(Frame): # 继承Frame类
def __init__(self, master=None):
Frame.__init__(self, master)
self.root = master #定义内部变量root
self.itemName = StringVar()
self.purchasePrice = StringVar()
self.salePrice = StringVar()
self.discountPrice = StringVar()
self.createPage()
def createPage(self):
Label(self).grid(row=0, stick=W, pady=10)
Label(self, text = '商品名称: ').grid(row=1, stick=W, pady=10)
Entry(self, textvariable=self.itemName).grid(row=1, column=1, stick=E)
Label(self, text = '采购价格/元: ').grid(row=2, stick=W, pady=10)
Entry(self, textvariable=self.purchasePrice).grid(row=2, column=1, stick=E)
Label(self, text = '销售价格/元: ').grid(row=3, stick=W, pady=10)
Entry(self, textvariable=self.salePrice).grid(row=3, column=1, stick=E)
Label(self, text = '折扣/元: ').grid(row=4, stick=W, pady=10)
Entry(self, textvariable=self.discountPrice).grid(row=4, column=1, stick=E)
Button(self, text='录入').grid(row=6, column=1, stick=E, pady=10)
class QueryFrame(Frame): # 继承Frame类
def __init__(self, master=None):
Frame.__init__(self, master)
self.root = master #定义内部变量root
self.itemName = StringVar()
self.createPage()
def createPage(self):
Label(self, text='查询界面').pack()
class CountFrame(Frame): # 继承Frame类
def __init__(self, master=None):
Frame.__init__(self, master)
self.root = master #定义内部变量root
self.createPage()
def createPage(self):
Label(self, text='统计界面').pack()
class AboutFrame(Frame): # 继承Frame类
def __init__(self, master=None):
Frame.__init__(self, master)
self.root = master #定义内部变量root
self.createPage()
def createPage(self):
Label(self, text='关于界面').pack()
运行效果
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 带浏览功能的 ChatGPT 与 ChatGPT 插件:您应该使用哪个版本的 ChatGPT?
ChatGPT就像生产力的瑞士军刀。它可以是数学导师、治疗师、职业顾问、编程辅助,甚至是旅行指南。非凡的AI聊天机器人几乎可以是您想要的任何东西,只要您知道如何让它做您想做的事。 但是你能让ChatGPT做你想做的事吗?您知道哪个版本的 ChatGPT 最能满…