【Python】【廖雪峰笔记】图形界面

# 【【图形界面】】
'''
Python支持多种图形界面的第三方库,包括
Tk
wxWidgets
Qt
GTK
但是Python自带的库是支持Tk的Tkinter,无需安装任何包,可直接使用。
'''


#【Tkinter】
'''
我们来梳理一下概念:

我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口;

Tk是一个图形库,支持多个操作系统,使用Tcl语言开发;

Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。

所以,我们的代码只需要调用Tkinter提供的接口就可以了。
'''

from tkinter import *
#从Frame派生一个Application 类,这是所有Widget的父容器
class Application(Widget):
#master,在Tkinter中,一个控件可能属于另一个控件,这时另一个控件就是这个控件的master。默认一个窗口没有master,因此master有None的默认值。
def __init__(self,master = None):
Frame.__init__(self,master)
self.pack()
self.createWidgets()
def createWidgets(self):
self.helloLabel = Label(self,text='hello,world')
self.helloLabel.pack()
self.quitButton = Button(self,text='Quit',command = self.quit())
self.quitButton.pack()
'''
在GUI中,每个Button Label 输入框等,都是一个Widget..Frame则是可以容纳其他Widget 的Widget .所有Widget组合起来就是一棵树
pack() 是把Widget放入父容器,并实现布局。pack()是最简单的布局,grid()可以实现更复杂的布局。
'''
#第三步 实例化Application 并启动消息循环
app = Application()
#设置窗口标题
#app.master是返回当前顶层窗口的对象,然后再调用title这个方法设置title,master=None只是表明app是顶层窗口而已。
app.master.title('Hello python')
# 实例户
#主消息循环
#app.mainloop()


# 输入文本
from tkinter import *
import tkinter.messagebox as messagebox

class Application(Frame):
def __init__(self,master = None):
Frame.__init__(self,master = None)
self.pack()
self.createWidgets()
def createWidgets(self):
self.nameInput = Entry(self)
self.nameInput.pack()
self.alertButton = Button(self,text = 'Hello',command = self.hello)
self.alertButton.pack()
def hello(self):
name = self.nameInput.get() or 'world'
messagebox.showinfo('Message',"hello %s" % name)
app = Application()
#设置窗口标题
app.master.title('Hello world')
#主消息循环
#app.mainloop()














































猜你喜欢

转载自www.cnblogs.com/suren2017/p/9385237.html