• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python基础之tkinter图形化界面学习

    一、基础内容

    import tkinter as tk
    from PIL import Image,ImageTk
    
    def my():
            pwin.destroy()
            win.deiconify()
    
    
    win = tk.Tk()
    #win.geometry('320x240+100+50') #长320宽240 右100,下50
    win['width']=320   #可以用win.keys()查看哪些可以这样写
    win['height']=240 
    win.title('tkinter图形化专题学习')
    
    #win.iconbitmap('my.ico')
    img=ImageTk.PhotoImage(image=Image.open('1.gif','r'))
    win.iconphoto(False,img)
    #win.withdraw()#临时退出
    #win.deiconify()#恢复
    #win.iconify()#最小化
    #win.destroy()#关掉
    #help(win.state)
    """
    win.state('iconic')
    win.state('normal')
    win.state('zommed')
    win.state('zoomed')
    win.state('withdraw')
    """
    #win.attributes('-alpha',0.5) #设置透明度
    #win.attributes('-toolwindow',1)#没有最大化最小化按钮
    #win.attributes('-toolwindow',0)#常规窗口
    #win.attributes('-topmost',1) #置顶
    
    win.withdraw()  #隐藏原窗口
    pwin=tk.Toplevel(win)  #新建弹窗
    pwin.title('弹窗')
    pwin.protocol('WM_DELETE_WINDOW',my)
    
    
    win.mainloop()
    

    二、渐变窗口与计时器

    #计时器
    import tkinter as tk
    import time
    
    def my():
        global x
        if x >1:
            return
        win.title('计时器:{:.2f}'.format(x))
        win.attributes('-alpha', x)
        x += 0.01
        
        win.after(200,my) #100ms
        
    win = tk.Tk()
    win.title("计时器")
    win['bg']= 'lightblue'  #用win.keys()查看
    win.geometry('300x300')
    win.resizable(0,0) #不可变窗口大小
    
    x = 0.01
    win.attributes('-alpha', x)
    win.after(200,my)
    
    win.mainloop()
    
    

    三、简单的布局标签文本框按钮

    3.1 布局

    import tkinter as tk
    win=tk.Tk()
    win.title("布局")
    win.geometry('320x240')
    #win.resizable(0,0)
    #定义
    lbl=tk.Label(win,text="请输入")
    txt=tk.Entry(win)
    btn=tk.Button(win,text="确定")
    #布局 方法一pack打包式放置 方法二grid表格式放置 方法三place任意放置
    """
    lbl.pack(side='left' ,padx=(10,0))
    txt.pack(side='left')   #txt.pack_info()查看pack的参数
    btn.pack(side='left', padx='10')
    """
    """
    lbl.grid(row=0,column=0,padx=(50,10),pady=10) #lbl.grid_info()查看grid的参数
    txt.grid(row=0,column=1)
    btn.grid(row=1,column=0,columnspan=2,padx=(50,0),pady=10, sticky='we')
    """
    lbl.place(relx=0.1,rely=0.2)
    txt.place(relx=0.3,rely=0.15)
    btn.place(relx=0.5,rely=0.25)
    #win.mainloop()
    

    3.2 布局

    import tkinter as tk
    #建窗口
    win=tk.Tk()
    win.title('布局')
    #建组件
    frm=tk.Frame(win) #框架
    #定义
    lbl=tk.Label(frm,text='请输入')
    txt=tk.Entry(frm)
    btn=tk.Button(win,text='确定')
    
    #布局
    lbl.pack(side='left', padx=10, pady=10)
    txt.pack(side='left', padx=10, pady=10)
    frm.pack()
    btn.pack(fill='x')
    
    
    win.mainloop()
    
    

    四、摄氏度华氏度

    import tkinter as tk
    def myfun(e):
    #def myfun():
        try:
            a=int(entry1.get())
            b=int(entry2.get())
            lbx.delete(0,'end')
            for i in range(a,b+1):
                f=i*9/5+32
                lbx.insert('end','    {}           {}'.format(i,f))
        except:
            pass
    
    
    win=tk.Tk()
    win.title('温度转换')
    win.resizable(0,0) #大小不可更改
    label1 = tk.Label(win, text='请输入第1个整数')
    label2 = tk.Label(win, text='请输入第2个整数')
    label3 = tk.Label(win, text='摄氏温度   华氏温度')
    entry1 = tk.Entry(win)
    entry2 = tk.Entry(win)
    entry1.insert(0, '10')
    entry2.insert(0, '15')
    #btn=tk.Button(win, text='确定',command=myfun)
    btn=tk.Label(win, text='确定',#把label变成按钮
                 relief='groove')  #浮雕
    btn.bind('Button-1>', myfun) #用bing绑定 必须给函数参数 
    lbx=tk.Listbox(win)
    
    #滚动条
    scr=tk.Scrollbar(win)
    scr['command']=lbx.yview
    lbx['yscrollcommand']=scr.set
    
    label1.grid(row=1, column=0)
    label2.grid(row=2, column=0)
    label3.grid(row=0, column=2)
    
    entry1.grid(row=1, column=1)
    entry2.grid(row=2, column=1)
    btn.grid(row=3, column=1, sticky="ew")
    lbx.grid(row=1, column=2, rowspan=3, padx=10, pady=10)
    scr.grid(row=1, column=3, rowspan=3, sticky='ns')
    #btn.key()找到可以设置的参数 或者btn.config()
    
    win.mainloop()
    

    五、随机弹出数字(随机点名、抽奖)

    import tkinter as tk
    import random
    def myfun():
        lst=list(range(100))
        name=random.choice(lst)
        lbl['text']=name
        win.after(500,myfun)
    
    win=tk.Tk()
    win.title('抽奖程序')
    
    lbl=tk.Label(win,text='***', width=6,font='-size 48')
    btn=tk.Button(win,text='开始', font='-size 36', command=myfun)
    
    lbl.grid(row=0,column=0,padx=10,pady=10)
    btn.grid(row=0,column=1,padx=10,pady=10)
    
    
    #win.mainloop()
    

    六、几行几列五子棋画布

    import tkinter as tk
    
    win=tk.Tk()
    win.title('五子棋')
    win.geometry('800x600+64+32')
    win.resizable(0,0)
    
    #建画布
    cav=tk.Canvas(win, width=600,height=600, bg='yellow')
    rfm=tk.Frame(win,width=200,height=600, bg='lightyellow')
    cav.pack(side='left')
    rfm.pack(side='right')
    
    #画线
    for i in range(1,20):
        x1, y1, x2, y2=30, i*30,19*30,i*30
        cav.create_line(x1,y1,x2,y2)
        cav.create_line(y1,x1,y2,x2)
    
    

    到此这篇关于Python基础之tkinter图形化界面学习的文章就介绍到这了,更多相关Python tkinter图形化界面学习内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python用tkinter开发的扫雷游戏
    • python tkinter Entry控件的焦点移动操作
    • python3.7.2 tkinter entry框限定输入数字的操作
    • python使用tkinter实现透明窗体
    • Python基于Tkinter开发一个爬取B站直播弹幕的工具
    • Python实战之用tkinter库做一个鼠标模拟点击器
    • python基于tkinter制作m3u8视频下载工具
    • Python中tkinter的用户登录管理的实现
    • python tkinter实现定时关机
    • 上帝为你开了一扇窗之Tkinter常用函数详解
    上一篇:Django cookie和session的应用场景及如何使用
    下一篇:python3.9之你应该知道的新特性详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python基础之tkinter图形化界面学习 Python,基础,之,tkinter,图形,