Python-第四周-图形化界面设计_tkinter模块-06

一.tkinter模块之事件绑定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实例1.1
在这里插入图片描述

from tkinter import *
def show(event) :
    s = event.keysym
    lb.config(text = s )
root = Tk()
root.title("按键实验")
root.geometry('200x200')
lb = Label(root,text = "请按键",font = ('黑体1',48))
lb.bind('<Key>',show) #将标签绑定键盘
lb.focus_set()  #因为是键盘
lb.pack()
root.mainloop()

运行结果:
在这里插入图片描述

实例2.1
在这里插入图片描述

from tkinter import *
def show(event) :
    s = '光标位于x=%s,y=%s'%(str(event.x),str(event.y))
    lb.config(text = s)
root = Tk()
root.title('鼠标实验')
root.geometry('200x200')

lb = Label(root,text = '请单击窗体')
lb.pack()
root.bind('<Button-1>',show) #show为当Button-1被触发后,要执行的函数
root.mainloop()

运行截图:
在这里插入图片描述

  • 线

二.tkinter模块之菜单控件使用

1.
在这里插入图片描述
在这里插入图片描述
实例1.1

from tkinter import *
root = Tk()
root.geometry('320x240')

mainmenu = Menu(root)  #相当于给根窗体(这里是菜单)起个名字,好比 '班级名称'
filemenu = Menu(mainmenu)  #这个是菜单(会显示),相当于 班级里每个同学的 ’名字‘
mainmenu.add_cascade(label = 'file',menu = filemenu)

editmenu = Menu(mainmenu)
mainmenu.add_cascade(label = 'edit',menu = editmenu)

printmenu = Menu(mainmenu)
mainmenu.add_cascade(label = 'print',menu = printmenu)

root.config(menu = mainmenu)

运行结果:
在这里插入图片描述

  • 线

二.tkinter模块之子窗体Toplevel控件

1.
在这里插入图片描述
实例1.1
在这里插入图片描述
实现代码:

from tkinter import *
def newWind() :
    winNew = Toplevel(root)
    winNew.geometry('320x240')
    winNew.title('新窗体')
    lb2 = Label(winNew,text = "我在新窗体上")
    lb2.place(relx = 0.2,rely = 0.2)
    btClose = Button(winNew,text = '关闭',command = winNew.destroy)
    btClose.place(relx = 0.7,rely = 0.5)

root = Tk()
root.title('新建窗体实验')
root.geometry('320x240')
lb1 = Label(root,text = '主窗体',font=('黑体',32,'bold'))
lb1.place(relx = 0.2,rely = 0.2)

mainmenu = Menu(root)
menuFile = Menu(mainmenu)

mainmenu.add_cascade(label = "菜单",menu = menuFile)  #用来添加一个菜单分组
menuFile.add_command(label = "新窗体",command = newWind) #用来添加一条菜单命令
menuFile.add_separator()  #用来添加一分割线
menuFile.add_command(label = "退出",command = root.destroy)

root.config(menu = mainmenu)
root.mainloop()

运行截图:
在这里插入图片描述

  • 线

三.tkinter模块之模式对话框

在这里插入图片描述
(1)消息对话框
在这里插入图片描述
实例1.1

	#实例:确认取消对话框
>>> import tkinter.messagebox
>>> arwser = tkinter.messagebox.askokcancel('新消息','选择是否')

运行结果:
在这里插入图片描述
实例1.2

	#实例:重试取消对话框
>>> import tkinter.messagebox
>>> aser = tkinter.messagebox.askretrycancel('新消息','选择是否')

>>> print(aser) #注意:当我们成功运行即弹出对话框后,输出为 True,否则为 False
True

运行结果:
在这里插入图片描述
综合实例1.3
在这里插入图片描述
代码:

from tkinter import *
import tkinter.messagebox

root = Tk()
def xz():
    answer = tkinter.messagebox.askokcancel ('请选择','请选择确定或取消')
    if answer :
        lb.config(text = '已确认')
    else :
        lb.config(text = '已取消')

lb = Label(root,text = '')   # text 什么也不显示(当前表现为空白)
lb.pack()
btn = Button(root,text = '弹出对话框',command = xz)
btn.pack()
root.mainloop()

(2)输入对话框与文件对话框
在这里插入图片描述
实例2.1

>>> from tkinter import *
>>> import tkinter.simpledialog
>>> root = Tk()
>>> s = tkinter.simpledialog.askstring('test','输入一个字符串')

运行结果:
在这里插入图片描述
在这里插入图片描述
实例2.2

>>> import tkinter.filedialog
>>> A = tkinter.filedialog.askopenfilename()

运行过程:
在这里插入图片描述
在这里插入图片描述

综合实例2.3
在这里插入图片描述

#只能选择一个文件夹

from tkinter import *
import tkinter.filedialog

root = Tk()

def xz():
    filename = tkinter.filedialog.askopenfilename()  #只能选择一个文件夹
    if filename :
        lb.config(text = '你选择的文件是'+filename)
    else :
        lb.config(text = '你没有选择任何文件')

lb = Label(root,text = '')
lb.pack()

btn = Button(root,text = '弹出文件选择对话框',command = xz)
btn.pack()

root.mainloop()

运行结果:
在这里插入图片描述

综合实例2.3

#这个是可以选择多个文件夹的

from tkinter import *
import tkinter.filedialog

root = Tk()

def xz():
    filename = tkinter.filedialog.askopenfilenames()#可以选择多个文件夹
    s = ''
    for string in filename :
        s = s + string + '\n'
    lb.config(text = s )

lb = Label(root,text = '')
lb.pack()

btn = Button(root,text = '弹出文件选择对话框',command = xz)
btn.pack()

root.mainloop()

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA小徐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值