python的GUI初步学习

python的GUI初步学习(一)

首先需要安装用的python 库是tkinter.,在命令行中输入pip install tkinter

from tkinter import *
#实例化一个对象
root =Tk(className="标题")
root.mainloop()

其中class是窗口标题,mainloop是主窗口的成员函数,也就是表示让这个root能够工作,开始接收鼠标和键盘的操作(关闭缩小等操作)

#设置宽度不能变,高度可变
root.resizable(width=False,height=True)

对显示窗口位置的设定

from tkinter import *
root =Tk()
width =300
height =200
screenwidth =root.winfo_screenwidth()
screenheight =root.winfo_screenheight()
# print(screenwidth)
# print(screenheight)
position ='%dx%d+%d+%d'%(width,height,(screenwidth-width)/2,(screenheight-height)/2)
root.geometry(position)
root.mainloop()

现在有的外部窗口,下一步,需要在窗口里写入内容了

from tkinter import *
#实例化一个对象
root =Tk(className="标题")
# Label 显示文本和位图
label =Label(root) #获取标签
label['text'] ='hello world!'
label.pack()  #打包显示的
root.mainloop()

接下来添加一个按钮

from tkinter import *
#实例化一个对象
root =Tk(className="标题")
# Label 显示文本和位图
label =Label(root) #获取标签
label['text'] ='hello world!'
label.pack()  #打包显示的
#创建一个按钮
button =Button(root)
button['text'] ='按钮'
button.pack()
root.mainloop()

点击按钮没有任何反应,那么我们需要去设置点击之后所发生什么。
先定义一个函数,使点击后窗口内容发生改变,然后把函数名传给button中的command.

from tkinter import *
def on_click():
    label['text'] ='成功点击按钮!'
#实例化一个对象
root =Tk(className="标题")
# Label 显示文本和位图
label =Label(root) #获取标签
label['text'] ='hello world!'
label.pack()  #打包显示的
#创建一个按钮
button =Button(root)
button['text'] ='按钮'
button['command'] =on_click
button.pack()
root.mainloop()

那么,实现一个人下图的操作,点击按钮之后,hello world会修改为“设置字符串”样式实现之后

from tkinter import *
def on_click():
    label['text'] =text.get()
#实例化一个对象
root =Tk(className="标题")
# Label 显示文本和位图
label =Label(root) #获取标签
label['text'] ='hello world!'
label.pack()  #打包显示的
#定义一个可以改变的字符串
text =StringVar()
text.set('设置字符串')
#设置一个可以输入并且可以改变的文本框
entry =Entry(root)
entry['textvariable'] =text #使text为文本框的初始值
entry.pack()
#创建一个按钮
button =Button(root)
button['text'] ='按钮'
button['command'] =on_click
button.pack()
root.mainloop()

简单的一个GUI

from tkinter import *
def hello():
    print('hello world!')
win =Tk()  #定义窗体
win.title('hello world!') #窗体标题
win.geometry('400x300') #定义窗口大小
btn =Button(win,text='click me!',command=hello)
btn.pack(expand=YES,fill=BOTH) #fill充满整个窗体,expand是使按钮居中
mainloop()

分装成类,有两个按钮,点击QUTT,退出窗口,点击Hello,在控制台打印hi there,there is a class example!

from tkinter import *
class App:
    def __init__(self,master):
        frame =Frame(master)
        frame.pack()

        self.button =Button(frame,text='QUTT',fg='red',command=frame.quit)
        self.button.pack(side=LEFT)
        self.hi_there =Button(frame,text='Hello',command=self.say_hi)
        self.hi_there.pack(side=LEFT)
    def say_hi(self):
        print('hi there,there is a class example!')
win =Tk()
win.title('标题')
win.geometry('600x500')
app =App(win)
win.mainloop()

Menu组件,画一个程序外壳

from tkinter import *
def file():
    print("文件点击")
def exit():
    print("编辑点击")
def about():
        print("关于点击")
#创建一个窗口
root =Tk()
root.geometry("200x100")
# 创建一个菜单项,类似于导航栏,顶层菜单
menubar =Menu(root)
#菜单项(文件,编辑,关于)
filemenu =Menu(menubar)
for iter in ['新建','打开','保存','另存为','打印','设置']:
    # 如果该菜单是顶层菜单的一个菜单项,则它添加的是下拉菜单的菜单项。则他添加的是下拉菜单的菜单项。
    filemenu.add_command(label=iter,command=file)
exitmenu =Menu(menubar)
for iter in ['复制','粘贴','剪切','文本','删除']:
    exitmenu.add_command(label=iter,command=exit)
aboutmenu =Menu(menubar)
for iter in ["版权信息","其它说明"]:
    aboutmenu.add_command(label=iter,command=about)
# add_cascade 的一个很重要的属性就是 menu 属性,它指明了要把那个菜单级联到该菜单项上,
# 当然,还必不可少的就是 label 属性,用于指定该菜单项的名称
menubar.add_cascade(label='File',menu=filemenu)
menubar.add_cascade(label='exit',menu=exitmenu)
menubar.add_cascade(label='about',menu=aboutmenu)
# 最后可以用窗口的 menu 属性指定我们使用哪一个作为它的顶层菜单
root.config(menu=menubar)
mainloop()

显示如下图:
在这里插入图片描述
将Lable结合,当点击about的时候,在窗体上打印about的内容,而不是在终端输出,将about函数修改一下,frame绘制一个标签并显示器内容

def about():
        w =Label(root,text="因为这是我第一个接触的GUI图形界面python库,")
        w.pack(side=TOP)
原创文章 31 获赞 3 访问量 2017

猜你喜欢

转载自blog.csdn.net/qq_43779011/article/details/90732840