• python_GUI页面开发


    GUI:人机交互图形化界面,图形页面窗口,Windows系统就是一个庞大的GUI界面,比命令行更加让人得以接受,使用更加简便

    在python中的GUI界面是由tkinter提供的,使用前需导入

    变量 = tk.Tk():创建一个窗口,将他实例化

    变量 = geometry('长宽'):设置窗口的长宽

    页面开发的最小内容:

    1.导入tkinter模块

    2.创建主窗口对象

    3.将主窗口对象加入消息循环

    import tkinter
    #创建主窗口对象
    root = tkinter.Tk()
    #设置窗口大小
    root.minsize(300,300)
    #加入一个按钮组件
    #创建一个按钮组件(在内存中创建)
    but = tkinter.Button(root,text = "按钮1")
    #摆放组件
    but = pack()

    组件的摆放方式:

    1.pack()方式   ——>方位/方向摆放

    2.gird()方式 ——>网格摆放方法

    3.place()     ___>定位摆放方法

    pack()方式:

    side:设置组件相对于父组件的摆放位置

    ipadx,ipady :设置组件的内部间距

    padx,pady:设置多个组件之间的外部间距

    expand:设置side是否失效

    import tkinter
    #创建主窗口对象
    root = tkinter.Tk()
    #设置窗口大小
    root.minsize(300,300)
    #加入一个按钮组件
    #创建一个按钮组件(在内存中创建)
    but = tkinter.Button(root,text = "按钮1")
    #摆放组件
    but = pack(ipadx = 20)
    #创建组件2
    btn2 = tkinter.Button(root,text = '按钮2')
    btn2.pack(ipady = 20)
    创建一个按钮组件
    but3 = tkinter.Button(root,text = "按钮3")
    #摆放组件
    but = pack(padx = 20)
    but5 = tkinter.Button(root,text = "按钮5")
    but5.pack(fill = 'x',side = 'left')#该组件占据水平方向的最大位置
    but6 = tkinter.Button(root,text = "按钮6")
    but6.pack(expand = 'yes',fill = 'both')#让size失效

    gird()方式

    row 设置行数   默认为0

    column 设置列数  默认为0

    rowspan   设置跨列数量

    ipadx,ipady   设置组件内部间距

    import tkinter
    #创建主窗口对象
    root = tkinter.Tk()
    #设置窗口大小
    root.minsize(300,300)
    #加入一个按钮组件
    #创建一个按钮组件(在内存中创建)
    but = tkinter.Button(root,text = "按钮1")
    #摆放组件
    but.grid(row = 0,column = 0)#设置行为0列为0
    btn0 = tkinter.Button(root,text = '按钮0')
    btn0.grid(row =2,column = 0,columnspan = 2)#占据2行

    place()

    绝对定位:

    x:设置左上角水平长度+++++++单位像素

    y:设置距离左上角的垂直宽度

    设置组件所占据的宽度

    heigh:设置组件所占据的宽度

    import tkinter
    #创建主窗口对象
    root = tkinter.Tk()
    #设置窗口大小
    root.minsize(300,300)
    #加入一个按钮组件
    #创建一个按钮组件(在内存中创建)
    but = tkinter.Button(root,text = "按钮1")
    #摆放组件
    but = place(x = ?,y = ?,width = ?,heigh = ?)#距离x(距离左上角的水平距离)多少,对于y多少#单位像素
    #相对位置
     
    but = place(relx = ?,rely = ?,width = ?,heigh = ?)#距离x(距离左上角的百分比水平距离)多少,对于y多少#单位百分比


    相对定位:

    relx:设置左上角水平长度(取值0-1)

    rely:设置距离左上角的垂直宽度

    rel设置组件所占据的宽度

    relheigh:设置组件所占据的宽度

    .geometry(?x?):设置界面大小

    button:

    bg:背景颜色

    fg:字体颜色

    选择框/复选框:Checkbutton

    import tkinter
    root = tkinter.Tk()
    #设置显示内容tkinter变量
    #设置内容
    text = tkinter.StringVar()
    text.set('文本')
    #设置复选框勾选与否的值
    result = tkinter.IntVar()
    def func():
        print(result.get())
                    
    cheekbutton = tkinter.Checkbutton(root,textvariable = text,variable = result,command = func)
    
    root.mainloop()

    Frame:相对于一个容器,框架

    import tkinter
    root = tkinter.Tk()
    root.geometry("500x500")
    frame1 = tkinter.Frame(root,bg = 'red',width = 500,height = 100)
    frame1.pack()
    frame2 = tkinter.Frame(root,bg = 'green',width = 500,height = 100)
    frame2.pack()
    bun = tkinter.Button(frame1,text = '按钮')
    bun1 = tkinter.Button(frame2,text = '按钮')
    bun2 = tkinter.Button(frame1,text = '按钮')
    bun3 = tkinter.Button(frame1,text = '按钮')
    bun.pack(side = 'left')
    bun2.pack(side = 'left')
    bun3.pack(side = 'left')
    bun1.pack()
    root.mainloop()

    LabelFrame:标签框架

    import tkinter
    root = tkinter.Tk()
    root.geometry("500x500")
    frame1 = tkinter.LabelFrame(root,text = 'hahaha' ,bg = 'red',width = 500,height = 100)
    frame1.pack()
    frame2 = tkinter.LabelFrame(root,bg = 'green',width = 500,height = 100)
    frame2.pack()
    bun = tkinter.Button(frame1,text = '按钮')
    bun1 = tkinter.Button(frame2,text = '按钮')
    bun2 = tkinter.Button(frame1,text = '按钮')
    bun3 = tkinter.Button(frame1,text = '按钮')
    bun.pack(side = 'left')
    bun2.pack(side = 'left')
    bun3.pack(side = 'left')
    bun1.pack()
    root.mainloop()

    Label:标签

    import tkinter
    root = tkinter.Tk()
    root.geometry("500x500")
    label = tkinter.Label(root,text = "标签")
    label.pack()
    root.mainloop()

    listbox:列表盒子

    import tkinter
    root = tkinter.Tk()
    root.geometry("500x500")
    name = ("auy","hayaya","pox")
    std = tkinter.StringVar(value=name)
    listbox = tkinter.Listbox(root,listvariable = std)
    listbox.pack()
    root.mainloop()

    文本输入框:Entry

    import tkinter
    root = tkinter.Tk()
    entry = tkinter.Entry(root,width = 50)#width输入框的长度
    password = tkinter.Entry(root)#show代表遮盖符
    entry.pack()
    password.pack()
    root.mainloop()
  • 相关阅读:
    antd pro2.0 使用记录五:设置代理
    antd pro2.0 使用记录四:右侧顶部菜单栏+新建页面
    antd pro2.0 使用记录三:多个接口调用问题
    antd pro2.0 记录二:登录/注册页面逻辑,调用后台
    实用的Portraiture滤镜磨皮教程
    mysql 远程访问权限
    vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)
    飞思卡尔imx6开发板Linux下GPIO驱动
    beagleBone black 中QT的移植
    Beaglebone Black从零开始系列教程大汇总!
  • 原文地址:https://www.cnblogs.com/Alom/p/11219296.html
Copyright © 2020-2023  润新知