0
点赞
收藏
分享

微信扫一扫

GUI应用程序类的经典写法

本节程序也是GUI应用程序编写的一个主要结构,采用了面向对象的方式,更加合理的组织代码。

通过类Application组织整个GUI程序,类Application继承了Frame及通过继承拥有了父类的特性。通过构造函数__init__()初始化窗口中的对象,通过createWidgets()方法创建窗口中的对象。

Frame框架是一个tkinter组件,表示一个矩形的区域。Frame一般作为容器使用,可以放置其他组件,从而实现复杂的布局。

【示例】标准的GUI程序类的写法

1"""测试一个经典的GUI程序的写法,使用面向对象的方式"""23from tkinter import *4from tkinter import messagebox567class Application(Frame):8  """一个经典的GUI程序的类的写法"""910  def __init__(self, master=None):11    super().__init__(master)    # super()代表的是父类的定义,而不是父类对象12    self.master = master13    self.pack()141516    self.createWidget()171819  def createWidget(self):20    """创建组件"""21    self.btn01 = Button(self)22    self.btn01["text"] = "点击送花"23    self.btn01.pack()24    self.btn01["command"] = self.songhua2526    # 创建一个退出按钮27    self.btnQuit = Button(self, text="退出", command=root.destroy)28    self.btnQuit.pack()293031  def songhua(self):32    messagebox.showinfo("送花","送你99朵玫瑰花")333435if __name__ == '__main__':36  root = Tk()37  root.geometry("400x100+200+300")38  root.title("一个经典的GUI程序类的测试")39  app = Application(master=root)40  root.mainloop()

"""测试一个经典的GUI程序的写法,使用面向对象的方式"""

from tkinter import *
from tkinter import messagebox


class Application(Frame):
  """一个经典的GUI程序的类的写法"""

  def __init__(self, master=None):
    super().__init__(master)    # super()代表的是父类的定义,而不是父类对象
    self.master = master
    self.pack()


    self.createWidget()


  def createWidget(self):
    """创建组件"""
    self.btn01 = Button(self)
    self.btn01["text"] = "点击送花"
    self.btn01.pack()
    self.btn01["command"] = self.songhua

    # 创建一个退出按钮
    self.btnQuit = Button(self, text="退出", command=root.destroy)
    self.btnQuit.pack()


  def songhua(self):
    messagebox.showinfo("送花","送你99朵玫瑰花")


if __name__ == '__main__':
  root = Tk()
  root.geometry("400x100+200+300")
  root.title("一个经典的GUI程序类的测试")
  app = Application(master=root)
  root.mainloop()

举报

相关推荐

GUI系统和activity应用程序管理

0 条评论