python tkinter库_Python-tkinter库的学习实例

文章目录

tkinter介绍

tkinter是Python自带的GUI库,可以实现GUI编程,将脚本或者代码封装成一个GUI或者EXE可执行文件,方便日后使用。这部分总结一下最近几天学习的tkinter库的使用,后面会基于该库做一些简单的小工具和小游戏,以练习tkinter的使用。

tkinter.Button实例

首先tkinter.Button这种形式可以这样理解:tkinter是对应的库民,Button是一个作为按钮的Object,首字母需要大写。tkinter还有其他的常用object,比如生成GUI首先需要生成一个主窗口对象,因此需要用到tkinter.Tk(),作为标签的tkinter.Label,可以设置菜单的tkinter.Menu,设置输入框的tkinter.Entry,设置单选按钮的tkinter.Radiobutton和复选按钮的tkinter.Checkbutton,绘图时设置画布的tkinter.Canvas……因此掌握这些object可以实现比较常见的GUI元素,是必须掌握的基础。

下面是一个tkinter.Button的实例。

import tkinter #导入tkinter模块

root=tkinter.Tk() #生成一个主窗口对象

button1=tkinter.Button(root,anchor=tkinter.E,text="按钮1",width=30,height=7)

button1.pack()

button2=tkinter.Button(root,text="按钮2",bg='blue')

button2.pack()

button3=tkinter.Button(root,text="button3",width=12,height=1)

button3.pack()

button4=tkinter.Button(root,text="button4",width=40,height=7,state=tkinter.DISABLED)

button4.pack()

root.mainloop()

显示效果:

?i=20190612092249659.png

作为第一个基本实例,有必要搞清楚每一行代码表示的含义。

首先import tkinter是导入一个库,如果该库是标准库,则不需要再行下载;如果该库是第三方库,则需要提前下载安装。

root=tkinter.Tk()是使用Tk()这个object生成一个主窗口对象,并命名为root。我们的所有button,menu,entry都需要放置在root里面,它相当于是一个容器,里面可以有我们种的花花草草和养的飞禽走兽,这花花草草就是静态的object,飞禽走兽就是我们需要链接的动作或者说事件。容器的概念可以类比C++的STL。实际上,我们也可以开多个主窗口,但是要注意都需要进入mainloop()。如下面的代码可以开两个主窗口。

import tkinter

root=tkinter.Tk()

root.title('QJX')

window=tkinter.Tk()

window.title('WYF')

root.mainloop()

window.mainloop()

?i=20190612092346137.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5zaGVuMTEy,size_16,color_FFFFFF,t_70

button1和后面的button2,button3都是一样的,搞清楚一个就可以。很显然button1是一个tkinter.Button的object,括号里面是对应的属性设置。凡是object,都需要指定是以哪个主窗口为master的,虽然实践证明当只有一个master时,即只有一个主窗口时,不指定master也是可以的,但这种方法不推荐。这里所有的button显然都指定root为主窗口。anchor=tkinter.E是指定button中文本的对齐方式,这里是右对齐,为什么是右对齐呢,是因为E(eastern)是东的方向,GUI默认是上北下南左西右东,因此东在右侧,故是右对齐。其他对齐方式还有E,S,W,N,NE(东北),NW(西北),SW(西南),SE(东南)。button4的state=tkinter.DISABLED是设置按钮为不使能,即为灰色无法选中的状态。每一个button后面的pack()是将其放在master中,还有一种方法是place()

tkinter.Canvas实例

import tkinter

root=tkinter.Tk() #生成一个主窗口对象

canvas=tkinter.Canvas(root,width=600,height=480,bg='white')

canvas.create_text(301,76,text='use canvas',fill='gray')

canvas.create_text(300,75,text='use canvas',fill='blue')

canvas.create_polygon(290,114,316,114,330,130,310,146,284,146,270,130) #绘制多边形

canvas.create_oval(280,120,320,140,fill='white') #绘制椭圆

canvas.create_line(250,130,350,130)

canvas.create_line(300,100,300,160)

canvas.create_rectangle(90,190,510,410,width=5)

canvas.create_arc(100,200,500,400,start=0,extent=240,fill='pink')

canvas.create_arc(103,203,500,400,start=241,extent=118,fill='red')

canvas.pack()

root.mainloop()

tkinter.Label实例

import tkinter

root=tkinter.Tk()

label1=tkinter.Label(root,bg='red',fg='blue',text='Python',width=40,height=5)

label1.pack()

label2=tkinter.Label(root,text='Pythhhhon\ntkinter',justify=tkinter.LEFT,width=40,height=5)

label2.pack()

label3=tkinter.Label(root,text='Pythhhhon\ntkinter',justify=tkinter.RIGHT,width=40,height=5)

label3.pack()

label4=tkinter.Label(root,text='Pythhhhon\ntkinter',justify=tkinter.CENTER,width=40,height=5)

label4.pack()

root.mainloop()

tkinter.Menu实例

import tkinter

root=tkinter.Tk()

menu=tkinter.Menu(root)

submenu=tkinter.Menu(menu,tearoff=0)

submenu.add_command(label="新建")

submenu.add_command(label="打开")

submenu.add_command(label="保存")

submenu.add_command(label="关闭")

menu.add_cascade(label="文件",menu=submenu)

submenu=tkinter.Menu(menu,tearoff=1)

submenu.add_command(label="复制")

submenu.add_command(label="粘贴")

submenu.add_separator()

submenu.add_command(label="剪切")

menu.add_cascade(label="编辑",menu=submenu)

submenu=tkinter.Menu(menu,tearoff=0)

submenu.add_command(label="关于")

menu.add_cascade(label="帮助",menu=submenu)

root.config(menu=menu)

root.mainloop()

tkinter.Radiobutton和tkinter.Checkbutton实例

import tkinter

root=tkinter.Tk() #生成一个主窗口对象

r=tkinter.StringVar() #生成字符串常量

r.set('1')

radio=tkinter.Radiobutton(root,variable=r,value='1',text='单选按钮1')

radio.pack()

radio=tkinter.Radiobutton(root,variable=r,value='2',text='单选按钮2')

radio.pack()

radio=tkinter.Radiobutton(root,variable=r,value='3',text='单选按钮3')

radio.pack()

radio=tkinter.Radiobutton(root,variable=r,value='4',text='单选按钮4')

radio.pack()

c=tkinter.IntVar()

c.set(1)

check=tkinter.Checkbutton(root,text='复选按钮',variable=c,onvalue=1,offvalue=2)

check.pack()

root.mainloop()

print(r.get())

print(c.get())

tkinter.Entry()实例

import tkinter

root=tkinter.Tk()

entry1=tkinter.Entry(root,show='*')

entry1.pack()

entry2=tkinter.Entry(root,show='#',width=50)

entry2.pack()

entry3=tkinter.Entry(root,bg='red',fg='blue')

entry3.pack()

entry4=tkinter.Entry(root,selectbackground='red',selectforeground='gray')

entry4.pack()

edit1=tkinter.Text(root,selectbackground='red',selectforeground='gray')

edit1.pack()

root.mainloop()

tkinter.messagebox库的实例

import tkinter

import tkinter.messagebox

def cmd():

global n

global buttontext

n+=1

if n==1:

tkinter.messagebox.askokcancel('Python tkinter','取消')

buttontext.set('浪潮软件')

elif n==2:

tkinter.messagebox.askquestion('Python tkinter','浪潮软件')

buttontext.set('AAAA')

elif n==3:

tkinter.messagebox.askyesno('Python tkinter','否')

buttontext.set('showerror')

elif n==4:

tkinter.messagebox.showerror('Python tkinter','错误')

buttontext.set('showinfo')

elif n==5:

tkinter.messagebox.showinfo('Python tkinter','详情')

buttontext.set('显示警告')

else:

n=0

tkinter.messagebox.showwarning('Python tkinter','警告')

buttontext.set('AAAAl')

n=0

root=tkinter.Tk()

buttontext=tkinter.StringVar()

buttontext.set('AAAAl')

button=tkinter.Button(root,textvariable=buttontext,command=cmd)

button.pack()

root.mainloop()

tkinter.simpledialog库的实例

import tkinter

import tkinter.simpledialog

def InStr():

r=tkinter.simpledialog.askstring('Python','字符串',initialvalue='string')

print(r)

def InInt():

r=tkinter.simpledialog.askinteger('Python','输入整数',initialvalue='10')

print(r)

def InFlo():

r=tkinter.simpledialog.askfloat('Python','输入浮点数',initialvalue='1.2')

print(r)

root=tkinter.Tk()

button1=tkinter.Button(root,text='输入字符串',command=InStr)

button1.pack(side='left')

button2=tkinter.Button(root,text='输入整数',command=InInt)

button2.pack(side='left')

button3=tkinter.Button(root,text='输入浮点数',command=InFlo)

button3.pack(side='left')

root.mainloop()

这里需要引入tkinter.simpledialog这个模块,然后可以通过button的command调用相关函数。

tkinter.filedialog库的实例

import tkinter

import tkinter.filedialog

def FileOpen():

r=tkinter.filedialog.askopenfilename(title='Python',filetypes=[('Python','*.py;*.pyw'),('All files','*')])

print(r)

def FileSave():

r=tkinter.filedialog.asksaveasfilename(title='Python',initialdir=r'D:\Python_QJX',initialfile='test.py')

print(r)

root=tkinter.Tk()

button1=tkinter.Button(root,text='打开文件',command=FileOpen)

button1.pack(side='left')

button2=tkinter.Button(root,text='保存文件',command=FileSave)

button2.pack(side='left')

root.mainloop()

标签:tkinter,Python,text,Button,实例,root,pack

来源: https://blog.csdn.net/zhanshen112/article/details/91490110

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值