python 菜单调用_python thinker(菜单,滚动条,回调函数,对话框)

菜单menu

from tkinter import *

root= Tk()

def lab():

label0=Label(root,text="hello world")

label0.grid(column=0)

root.geometry("800x480")#窗口大小

menu0=Menu(root)#参数是父级控件

for x in ['文件','编辑','视图']:

menu0.add_command(label=x,command=lab)#添加3个一级菜单

#二级菜单

cascade0=Menu(menu0,tearoff=False)#tearoff=False 表示这个菜单不可以被拖出来

for x in ['添加新项','添加现有项']:

cascade0.add_command(label=x,command=lab)

cascade0.add_separator()#分割线

cascade0.add_checkbutton(label="在不调试的情况下启动")#单选框

cascade0.add_separator()#分割线

cascade0.add_radiobutton(label="添加引用")#多选框

cascade0.add_radiobutton(label="添加服务")#多选框

menu0.add_cascade(label='项目',menu=cascade0)#在menu0中添加一个label为项目的级联菜单

root['menu']=menu0#窗口root的menu是menu0

root.mainloop()

b2d9a3f396534852bc5af06203752c41.jpg

滚动条Scrollbar

单独

from tkinter import *

root= Tk()

def scrollCall(moveto, pos):

# 如何得到两个参数:使用如下打印中的信息,可以看到解释器传给scrollCall函数的两个参数,一个为

# moveto,参考手册可以得知,它是当拖动slider时调用的函数;另一个参数为slider的当前位置,我们

# 可以通过set函数来设置slider的位置,因此使用这个pos就可以完成控制slider的位置。

scrollbar.set(pos, 0)

print(pos)

#root.geometry("1280x720")#大小

scrollbar = Scrollbar(root,orient=HORIZONTAL,command=scrollCall)

scrollbar.pack(side = BOTTOM,fill =X)#必须填充

root.mainloop()

d95d17533a9645fcb746d95d55187749.jpg

与listbox 列表框配合

from tkinter import *

root = Tk()

lb = Listbox(root)

scrollbarx = Scrollbar(root,orient=HORIZONTAL)

scrollbary = Scrollbar(root)

scrollbarx.pack(side = BOTTOM,fill = X)

scrollbary.pack(side = RIGHT,fill = Y)

#root.geometry("1280x720")

#side指定Scrollbar为居右;fill指定填充满整个剩余区域,到WM在时候再详细介绍这几个属性。

#下面的这句是关键:指定Listbox的yscrollbar的回调函数为Scrollbar的set

lb['xscrollcommand'] = scrollbarx.set

lb['yscrollcommand'] = scrollbary.set

for i in range(100):

lb.insert(END,str(i)*20)

#side指定Listbox为居左,

lb.pack(side = LEFT,fill=BOTH)

#下面的这句是关键:指定Scrollbar的command的回调函数是Listbar的yview

scrollbary['command'] = lb.yview

scrollbarx['command'] = lb.xview

root.mainloop()

4c3cac2668f64406a8db4d29d56c58b5.jpg

使用grid布局

from tkinter import *

root= Tk()

def scrollCall(moveto, pos):

# 如何得到两个参数:使用如下打印中的信息,可以看到解释器传给scrollCall函数的两个参数,一个为

# moveto,参考手册可以得知,它是当拖动slider时调用的函数;另一个参数为slider的当前位置,我们

# 可以通过set函数来设置slider的位置,因此使用这个pos就可以完成控制slider的位置。

scrollbar.set(pos, 0)

list.insert(END,pos)

#root.geometry("1280x720")#大小

scrollbar = Scrollbar(root,command=scrollCall)

scrollbar.grid(column=0,row=0,sticky=NS)

#sticky 意思是组件紧靠所在单元格的某一边角。

# 取值有:N,S,E,W,NS,EW,NE,SW

#(默认为CENTER)

list=Listbox(root)

list.grid(row=0,column=1)

root.mainloop()

8886b7c23d7541fd846722cb2a4d42f5.jpg

控件调用函数

from tkinter import *#相当于命名空间

root= Tk()

def lab():

label0=Label(root,text="label1")

label0.grid(column=0)

def p(event):#要加event

print("hello world")

root.title("hello world")#窗口标题

#第一种

btn0=Button(root,text="button",command=lab)#按下调用函数lab

btn0.grid(row=0,column=0,sticky=EW)

#第二种

btn1=Button(root,text="button")

btn1.grid(row=0,column=1)

btn1.bind("",p)#鼠标左键,按下调用函数p

"""

1.我们在使用 bind 函数的时候事件

2.表示鼠标左键单击,3 右,2中

3.表示 A 键被按下

4.表示按下的是 Ctrl 和 V 键

5.表示按下的是 F1 键"""

ent=Entry(root)#输入框

ent.grid(row=1,column=0)

ent['show']="*"#掩码

ent.bind("",p)#在输入框按下回车,调用函数p

btn0['background']="blue"

print(btn0["text"])

root.mainloop()

49a0b0a3b6f74d84b6efaedebf84f17b.jpg

消息框与文件选择对话框

from tkinter import *#相当于命名空间

from tkinter.messagebox import *#相当于命名空间

from tkinter.filedialog import *

root= Tk()

file = askopenfilename()#打开选择文件窗口

showinfo(title="hello world",message=file)

#还有其它showwarning,showerror,askquestion,askokcancel,askyesno,askretryignore.

root.mainloop()

bc2f58303bf4478899388edbc6e183a2.jpg

1c2421f4b3404d68a0c70118a9f0fb07.jpg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值