• tkinter学习(3)scale尺度条和menu菜单


    1.scale学习(尺度条)
    1.1 代码:

    #第1步:导出模块
    import tkinter as tk 
    #第2步:定义窗口,及其标题、大小和位置
    win = tk.Tk()
    win.title('scale study window') #定义标题,如果未设置,就是默认tk的标题
    win.geometry('600x400+500+0') #+500+0,是布局位置,500为x=由左侧水平移动500,0为y=顶点位置,往下移动0
    #--------------上述格式基本固定-------------
    #定义label
    l=tk.Label(win,bg='pink',width=20,text='empty') #初始值是empty
    l.pack()
    #定义函数
    def print_selection(v): #v=value=数值,scale中有一个默认的传入值
    l.config(text='You have selected:'+v)
    
    #label='try me',注意不是text='try me',0.01是保留小数点后2位
    #注意from后面有下划线,length=200代表200个像素,与width不一样
    #to=11,可以显示11,但是to=10没能显示出10,因为tickinterval=3,每个3个刻度显示一下,改为2就可以了
    #showvalue=0(False),showvalue=1(True),显示scale条上和鼠标上的数字
    s=tk.Scale(win,label='try me',from_=5,to=11,orient=tk.HORIZONTAL,
    length=200,showvalue=1,tickinterval=2,resolution=0.01,
    command=print_selection)
    s.pack()
    
    #循环挂起
    win.mainloop()
    View Code

    1.2 图1

    2.Menubar菜单的学习
    2.1 代码:

    import tkinter as tk
    
    win = tk.Tk() #win=window
    win.title('my window')
    win.geometry('800x500+500+0')
    
    l = tk.Label(win, text='', bg='yellow',width=20,height=2) #不定义width,那默认就是一个字符串大小的宽度
    l.pack()
    
    counter = 0
    def do_job():
    global counter
    l.config(text='do '+ str(counter)) #config就是改变l=label的一个参数
    counter+=1
    
    #说实话菜单设计有点麻烦,还是PySimpleGUI的简单
    menubar = tk.Menu(win)
    #tearoff=0,是默认值,如果不设置,就是不显示水平虚线,为1就是True,就是显示水平虚线
    #filemenu和editmenu是水平并列的两个菜单按钮
    filemenu = tk.Menu(menubar, tearoff=0) #第1,定义flie菜单
    menubar.add_cascade(label='File', menu=filemenu)
    #file菜单的子菜单
    filemenu.add_command(label='New', command=do_job)
    filemenu.add_command(label='Open', command=do_job)
    filemenu.add_command(label='Save', command=do_job)
    filemenu.add_separator() #按钮的水平分割线
    filemenu.add_command(label='Exit', command=win.quit)
    
    #定义一个三级下拉菜单
    submenu = tk.Menu(filemenu) #挂在filemenu下的
    #underline=0不显示下划线,为1显示下划线,不设置就是默认为0,注意是第2个字母下才有下划线
    filemenu.add_cascade(label='Import', menu=submenu, underline=1)
    #import的一个子菜单
    submenu.add_command(label="Submenu1", command=do_job)
    
    #------定义第2个主菜单edit----
    editmenu = tk.Menu(menubar, tearoff=0) #第2,定义edit菜单
    menubar.add_cascade(label='Edit', menu=editmenu)
    #edit菜单的子菜单
    editmenu.add_command(label='Cut', command=do_job)
    editmenu.add_command(label='Copy', command=do_job)
    editmenu.add_command(label='Paste', command=do_job)
    
    win.config(menu=menubar) #config就是改变win的一个参数,将menu放在win上去
    
    win.mainloop()
    View Code

    2.2 图2

  • 相关阅读:
    log4j1修改DailyRollingFileAppender支持日志最大数量
    log4j1 修改FileAppender解决当天的文件没有日期后缀
    log4j生成有日期的日志文件名
    Java删除List和Set集合中元素
    Java并发编程:并发容器之ConcurrentHashMap
    Java并发编程:并发容器之CopyOnWriteArrayList
    java.util.ConcurrentModificationException解决详解
    Handshake failed due to invalid Upgrade header: null 解决方案
    web项目Log4j日志输出路径配置问题
    log4j.properties 的使用详解
  • 原文地址:https://www.cnblogs.com/ysysbky/p/12200493.html
Copyright © 2020-2023  润新知