【第三方库】tkinter基本用法

目录

一.按钮

二、文本框

三、ListBox

四、RadiusButton

五、滚动条-scale

六、复选框-checkbutton

七、画布-canvas

八、菜单-menu

九、frame

十、messagebox

注意点:放置部件的三种方式


一.按钮

import tkinter as tk
window=tk.Tk()  # 窗口对象
window.title('智能拼图')
window.geometry('900x600')  #宽900,高600

l=tk.Label(window,text='菜单栏',bg='green',font=('Arial',12),width=30,height=10)  # 标签宽度:30 高度100
# l.pack()  # l.place():具体放在某个点上
# l.place(x=800,y=0)
l.place(relx=0.5, rely=0.5,anchor=tk.CENTER)
var=tk.StringVar()

on_hit=True
def hit_me():
    global on_hit
    var.set('开始游戏')
    if on_hit:
        var.set('结束游戏')
        on_hit = False
    else:
        var.set('开始游戏')
        on_hit=True
b=tk.Button(window,textvariable=var,bg='orange',width=10,height=1,command=hit_me)
b.place(relx=0.9,rely=0.9)

window.mainloop()

二、文本框

import tkinter as tk

window=tk.Tk()

window.title('文本框')
window.geometry('400x400')

# e=tk.Entry(window,show='*')
e=tk.Entry(window,show=None)
e.pack()

def insert_point():
    var=e.get()
    t.insert('insert',var)

# def end_point():
#     var=e.get()
#     t.insert('end',var)

def end_point():
    var=e.get()
    t.insert(3.3,var)


b1=tk.Button(window,text='insert point',width=10,height=2,command=insert_point)
b1.pack()

b2=tk.Button(window,text='end point',width=10,height=4,command=end_point)
b2.pack()

t=tk.Text(window,height=2)
t.pack()


window.mainloop()

三、ListBox

import tkinter as tk

window=tk.Tk()
window.title('ListBox')
window.geometry('400x400')

var1=tk.StringVar()
def hit():
    value=lb.get(lb.curselection())
    var1.set(value)

l=tk.Label(window,width=20,height=1,font=('Arial',14),textvariable=var1,bg='orange')
l.pack()

b=tk.Button(window,width=10,height=2,text='点我啊',command=hit)
b.pack()

var2=tk.StringVar()
var2.set(('关羽','张飞','曹操','刘备','吕布'))
lb=tk.Listbox(window,listvariable=var2)
lb.insert(2,'貂蝉')
lb.insert('end','孙策')
lb.delete(3)

lb.pack()

window.mainloop()

四、RadiusButton

import tkinter as tk

window=tk.Tk()
window.title('radiusButton')
window.geometry('500x500')

var1=tk.StringVar()
l=tk.Label(window,width=50,height=2,font=('Arial',12),bg='green',text='初始化')
l.pack()


def print_select():
    l.config(text='you have selected '+var1.get())

r1=tk.Radiobutton(window,text='option A',variable=var1,value='A',command=print_select)
r1.pack()
r2=tk.Radiobutton(window,text='option B',variable=var1,value='B',command=print_select)
r2.pack()
r3=tk.Radiobutton(window,text='option C',variable=var1,value='C',command=print_select)
r3.pack()

window.mainloop()

五、滚动条-scale

import tkinter as tk

window=tk.Tk()
window.title('radiusButton')
window.geometry('500x500')

l=tk.Label(window,width=50,height=2,font=('Arial',12),bg='green',text='初始化')
l.pack()

def print_select(v):
    l.config(text='you have selected '+v)

s=tk.Scale(window,label='try me',from_=5,to=11,orient=tk.HORIZONTAL,length=300,showvalue=True,
           tickinterval=3,resolution=0.1,command=print_select)
s.pack()


window.mainloop()

六、复选框-checkbutton

import tkinter as tk

window=tk.Tk()
window.title('radiusButton')
window.geometry('500x500')

l=tk.Label(window,width=60,height=1,bg='orange')
l.pack()

def print_select():
    if(var1.get()==1)&(var2.get()==1):
        l.config(text='both love')
    elif(var1.get()==1)&(var2.get()==0):
        l.config(text='love Python')
    elif(var1.get()==0)&(var2.get()==1):
        l.config(text='love Java')
    else:
        l.config(text='not both love')

var1=tk.IntVar()
var2=tk.IntVar()
c1=tk.Checkbutton(window,text='Python',variable=var1,onvalue=1,offvalue=0,command=print_select)
c1.pack()
c2=tk.Checkbutton(window,text='Java',variable=var2,onvalue=1,offvalue=0,command=print_select)
c2.pack()

window.mainloop()

七、画布-canvas

import tkinter as tk

window=tk.Tk()

window.title('canvas')
window.geometry('400x400')

canvas=tk.Canvas(window,width=400,height=200,bg='gray')

img_file=tk.PhotoImage(file='./imgs/1.gif',width=50,height=50)
# anchor表示图片的起点位置(nw:西北角,ne:东北角,sw:西南角,se,东南角,center:中心位置)
image=canvas.create_image(0,0,anchor='nw',image=img_file)

x1,x2,y1,y2=60,90,60,90
line=canvas.create_line(x1,y1,x2,y2)
oval=canvas.create_oval(x1,y1,x2,y2,fill='red')
arc=canvas.create_arc(40,100,60,200,start=0,extent=180,fill='orange')
rect=canvas.create_rectangle(50,100,150,200)
canvas.pack()

def moveit():
    canvas.move(image,2,3)

button=tk.Button(window,text='move',width=20,height=10,bg='orange',command=moveit)
button.pack()

window.mainloop()

八、菜单-menu

import tkinter as tk

window = tk.Tk()
window.title('菜单')
window.geometry('400x400')

l = tk.Label(window, text='', width=10, height=1, bg='yellow')
l.pack()

counter = 0


def do_obj():
    global counter
    l.config(text='do' + str(counter))
    counter += 1


menubar = tk.Menu(window)  # 创建菜单栏

filemenu = tk.Menu(menubar, tearoff=0)  # 对菜单栏的格式进行设置,tearoff表示能否被分开
menubar.add_cascade(label='File', menu=filemenu)  # 设置菜单选项
filemenu.add_command(label='New', command=do_obj)
filemenu.add_command(label='Open', command=do_obj)
filemenu.add_command(label='Save', command=do_obj)
filemenu.add_separator()
filemenu.add_command(label='Exit', command=window.quit)

editmenu = tk.Menu(menubar, tearoff=0)  # 对菜单栏的格式进行设置,tearoff表示能否被分开
menubar.add_cascade(label='Edit', menu=editmenu)  # 设置菜单选项
editmenu.add_command(label='Copy', command=do_obj)
editmenu.add_command(label='Paste', command=do_obj)
editmenu.add_command(label='Cut', command=do_obj)

submenu=tk.Menu(filemenu)
filemenu.add_cascade(label='Import',menu=submenu,underline=False)
submenu.add_command(label='Submenu1',command=do_obj)

window.config(menu=menubar)

window.mainloop()

九、frame

import tkinter as tk

window=tk.Tk()
window.title('Frame')
window.geometry('400x400')

frm=tk.Frame(window)
frm.pack()

frm_l=tk.Frame(frm)
frm_r=tk.Frame(frm)
frm_l.pack(side='left')
frm_r.pack(side='right')

tk.Label(frm_l,text='on the frm_11').pack()
tk.Label(frm_r,text='on the frm_r').pack()
tk.Label(frm_l,text='on the frm_12').pack()

window.mainloop()

十、messagebox

import tkinter as tk
from tkinter.messagebox import showinfo
window=tk.Tk()
window.title('弹窗')
window.geometry('400x400')
def hit_me():
    tk.messagebox.showinfo(title='提示',message='发送成功')
    tk.messagebox.showwarning(title='警告', message='执行有误')
    tk.messagebox.showerror(title='错误', message='程序出错')
    print(tk.messagebox.askyesno(title='选择', message='确定删除吗?')) # 返回值是True或者False
    print(tk.messagebox.askquestion(title='问题',message='询问?'))  # yes no
    print(tk.messagebox.askokcancel(title='询问',message='确定还是取消?'))
    print(tk.messagebox.askretrycancel(title='选择',message='询问?'))  # true false
    print(tk.messagebox.askyesnocancel(title='选择',message='询问')) # true false none
tk.Button(window,width=20,height=10,text='hit me',command=hit_me).pack()
window.mainloop()

注意点:放置部件的三种方式

import tkinter as tk

window=tk.Tk()
window.title('部件的三种放置方式')
window.geometry('500x500')

# pack()进行部件放置的四种方式
# tk.Label(window,text='top').pack(side='top')
# tk.Label(window,text='right').pack(side='right')
# tk.Label(window,text='left').pack(side='left')
# tk.Label(window,text='bottom').pack(side='bottom')

# for i in range(4):
    # for j in range(3):
        # tk.Label(window,text=1).grid(row=i,column=j,padx=10,pady=10)  # 外部相距为10
        # tk.Label(window, text=1).grid(row=i, column=j, ipadx=10, ipady=10)  # 内部相距为10

# place(x,y,anchor)放置在具体的点上:
# 参数介绍:x和y表示放置的具体的位置,值可以是小数,表示百分比
# anchor表示从哪开始放置,nw:西北角,ne:东北角,sw:西南角,se:东南角,center:中心点
tk.Label(window,text='place').place(x=10,y=20,anchor='nw')

# 在window中创建一个新的窗口
# tk.Toplevel(window)

window.mainloop()

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值