使用面向对象的方式创建gui程序
-
创建类,并且继承Frame
class Application(Frame):
-
在构造方法中调用父类方法创建,因为创建的类无法直接创建窗口对象
def __init__(self,master=None): super().__init__(master) #调用父类构造方法 self.master = master self.pack()
-
可以使用类方法来创建一些组件
def create_widget(self): self.button = Button(self) self.button["text"] = "问候" self.button.pack() self.button["command"] = self.hello self.button_quit = Button(self,text="退出",command=self.master.destroy) self.button_quit.pack()
同时在构造方法中调用此方法
def __init__(self,master=None): super().__init__(master) #调用父类构造方法 self.master = master self.pack() self.create_widget()
也可以创建其他函数,作为组件按钮的事件绑定
绑定方式为:
self.button["command"] = self.hello
和之前的方法不一样
self.button.bind("<Button-1>",self.hello)
使用此方法会报错
-
root.title(“设置标题”)
-
root.geometry(“窗口宽度x窗口高度+窗口距离电脑屏幕左边距离+窗口距离电脑顶部距离”)
root = Tk() root.title("面向对象") root.geometry("400x600+400+250") app = Application(master=root) app.pack() root.mainloop()
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master=None):
super().__init__(master) #调用父类构造方法
self.master = master
self.pack()
self.create_widget()
def create_widget(self):
self.button = Button(self)
self.button["text"] = "问候"
self.button.pack()
self.button["command"] = self.hello
self.button_quit = Button(self,text="退出",command=self.master.destroy)
self.button_quit.pack()
def hello(self):
messagebox.showinfo("message","hello world")
def main():
root = Tk()
root.title("面向对象")
root.geometry("400x600+400+250")
app = Application(master=root)
app.pack()
root.mainloop()
if __name__ == "__main__":
main()
t.mainloop()
if name == “main”:
main()
![在这里插入图片描述](https://img-blog.csdnimg.cn/e0b330788fde48868598f43119b0a9f6.png)