python GUI

226 阅读2分钟

快速开始

import tkinter as tk

# 创建窗口
window = tk.Tk()

# 设置标题
window.title('第一个GUI程序')

# 开启窗口
window.mainloop() 
设置窗口大小
window.geometry('宽x高+距离左边像素+距离上面像素')
# 距离左边或上面可以不写
设置窗口锁定不允许缩放

window.resizeable(False,Flase) 第一个是宽,第二个是高是否允许缩放 默认都是True

设置窗口图标

window.iconbitmap(图片地址)

设置窗口背景颜色

window.configure(bg='red')

设置窗口透明度

window.attributes('-alpha', 0.5) 第二个参数是透明度,0-1,1不透明

窗口关闭触发函数
window.protocol('WM_DELETE_WINDOW', funcName)
# 销毁窗口
window.destroy()

组件

  • 标签语句

    tk.Label(window, text='第一个标签', font=('宋体', 字体尺寸一个int值, fg=('文字颜色'), bg = ('背景颜色')).pack()
    # .pack() 把元素布局上
    
  • 布局

    pack() # 系统自动给你填充
    palce(x = , y = ) # 自定义在窗口的绝对位置,x 距离窗口左侧,y距离窗口上方
    grid(row = , col = ) # 自定义第几行第几列
    
  • 输入框 & 获取输入框的字符串

    tk.Entry(window, width=一个int值, font=())
    
    # 创建tk字符串变量
    s1 = tk.StringVar()
    tk.Entry(window, textvariable=s1, .....)
    s1.set() # 设置值
    s1.get() # 获取值
    
  • 按钮

    tk.Button(window, text="按钮文字", font=(), width=宽度值, command='绑定的函数')
    
  • 弹窗

    import tkinter as tk
    from tkinter import messagebox
    
    # 四种弹窗
    messagebox.showerror('标题','提示信息')
    messagebox.showinfo('标题','提示信息')
    messagebox.showwarning('标题','提示信息')
    

    image.png

    # 第四种上图
    is_ok = messagebox.askokcancel('标题','提示信息')
    # 如果点击确认 is_ok 值为True 否则 为 false
    
  • 内部页面 # 可以用按钮去绑定函数触发,使用方法和Tk()一样,创建语法不同 a2 = Toplevel()

菜单

# 创建主菜单
c = tk.Menu(window)
# 设置菜单名
c.add_cascade(label='员工', command='')
# 开启菜单栏
window.config(menu=c) 
  • 下级菜单
x = tk.Menu(c, tearoff=0) # 第二个参数取消撕开按钮

# 设置
x.add_command(label='Name', command='绑定函数')

# 绑定
c.add_cascade(lable='员工', mune=x)

下拉选择框

# 导包
from tkinter.ttk import Combobox

value = StringVar()

v = ['1', '2', '3', '4', '5'] # 下拉列表的选择,只能是字符串类型的列表
c = Combobox(window, state='readonly', textvariable=value, values=v, .... 其他设置).pack()

# 只读设置
state='readonly'
# 设置默认下拉索引
c.current(0) # 默认选择0号索引位置

单选框

s2 = StringVar()
tk.Radiobutton(window, text='男', variable=s2, value='男')
tk.Radiobutton(window, text='男', variable=s2, value='女')
# 初始时不设置默认的s2值都会被选上,初始可以给s2设置其中一个value值

多选框

tk.Checkbutton(window, text='',variable=, onvalue=1, offvalue=0)
# 当用户选择为1,用户没有选择为0
# variable绑定的变量

列表框

lb = tk.Listbox(window, font=(), width=宽度, height=长度)
# 追加元素
from tkinter import END
lb.insert(END, '123')