zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    LeetCode(13) - Roman to Integer
    LeetCode(12) - Integer to Roman
    LeetCode(11) - Container With Most Water
    LeetCode(10) - Regular Expression Matching
    asp.net Mvc 使用uploadify 上传文件 HTTP 302 Error
    DbEntry 4.2 建立关系时的一些问题
    Log4Net 日志文件分类保存
    JqGrid 隐藏水平滚动条完美解决方案
    WebSocket使用SuperWebSocket结合WindowsService实现实时消息
    LigerUI ligerComboBox 下拉框 表格 多选无效
  • 原文地址:https://www.cnblogs.com/Alom/p/11219296.html
Copyright © 2011-2022 走看看