tkinter

GUI界面设计

tkinter

基本流程

import tkinter as tk

# 根窗口的实例化
window = tk.Tk()
# 设置根窗口的标题
window.title('tkinter')
# 设置根窗口的大小
window.geometry('100x100')
# 结尾必写,窗口循环
window.mainloop()

基本部件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIoQWdhB-1679623248725)(https://note.youdao.com/yws/public/resource/59a778834bc8d95ff20e7b55087b69ef/xmlnote/0CA5458FEA7F43C48E126A605039D8B7/16682)]

图形文本框

tk.Label

var = tk.StringVar()
tk.Label(window, bg='背景颜色', fg='字体颜色', font=字体大小, text='图形文本框显示内容'/textvariable=var).pack()

按钮

tk.Button

tk.Button(window,command=函数方法, width=, height=).pack()

图形文本框 按钮 连用案例

import tkinter as tk


# 根窗口的实例化
window = tk.Tk()
# 设置根窗口的标题
window.title('tkinter')
# 设置根窗口的大小
window.geometry('600x500')
# 设置一个文本变量
var = tk.StringVar()
var.set('我是设置的初始值')
# 添加一个图形文本框提示
tk.Label(window, textvariable=var, font=12, fg='white', bg='green', width=15, height=2).pack()
# 设置一个函数用来更改var的值
def var_set():
    var.set('我是更改后的值')
# 添加一个按钮
tk.Button(window, command=var_set, text='请点一下我', font=12, fg='white', bg='red', width=15, height=2).pack()
# 窗口循环
window.mainloop()

输入框

tk.Entry

tk.Entry(window, show=None/'*', font=12).pack()

内嵌文本框

tk.Text

tk.Text(window, height=12).pack()

列表选择框

tk.Listbox

tk.Listbox(window).pack()

# 第一种写入值的方法
var = tk.StringVar()
var.set((1, 2, 3, 4, 5))
tk.Listbox(window, listvariable=var).pack()

# 第二种写入值的方法
l1 = tk.Listbox(window)
l1.pack()
l1.insert(1, 'first')

# 获取当中选中的值
a = lbox1.get(lbox1.curselection())

# 删除值
l1.delete(1) # 删除第一位置的值

以上的连用

import tkinter as tk


# 根窗口的实例化
window = tk.Tk()
# 设置根窗口的标题
window.title('tkinter')
# 设置根窗口的大小
window.geometry('600x500')
# 添加一个输入框
e1 = tk.Entry(window, font=12, show=None)
e1.pack()
# 添加一个列表框
l1 = tk.Listbox(window, font=9)
l1.pack()
# 给列表框添加值
for i in range(20):
    l1.insert('end', i)
# 添加一个函数
def print_text():
    text.insert('end', f'{e1.get()}\n')
    text.insert('end', f'{l1.get(l1.curselection())}\n')
    text.insert('end', f'=====================================\n')
# 添加一个按钮 --- 在text中打印出上面的值
tk.Button(window, command=print_text, text='请点击我', font=12, bg='red').pack()
# 添加一个显示文本框
text = tk.Text(window, font=8, height=8)
text.pack()
# 窗口循环
window.mainloop()

选择部件

tk.Radiobutton — 用户只能选一个,不能多选。

tk.Radiobutton(window, text='选项值', variable=var, value='选项值', command=函数)

多选部件

tk.Checkbutton — 用户能多个选择

tk.Checkbutton(window, text='选项值', variable=var, onvalue=值 offvalue=, command=函数)

以上连用

import tkinter as tk


# 根窗口的实例化
window = tk.Tk()
# 设置根窗口的标题
window.title('tkinter')
# 设置根窗口的大小
window.geometry('600x500')
# 设置一个变量
var = tk.StringVar()
var1 = tk.IntVar()
var2 = tk.IntVar()
# 设置图形提示框
l1 = tk.Label(window, text='选择一')
l1.pack()
l2 = tk.Label(window, text='选择二')
l2.pack()
# 基本函数
def hanshu():
    l1.config(text='你选择的是' + var.get())
    if (var1.get() == 1) & (var2.get() == 0):
        l2.config(text='你必须学的是c')
    elif (var1.get() == 0) & (var2.get() == 1):
        l2.config(text='你必须学的是python')
    elif (var1.get() == 0) & (var2.get() == 0):
        l2.config(text='你必须学一个')
    else:
        l2.config(text='那就多练习')
# 选择部件
r1 = tk.Radiobutton(window, text='python', variable=var, value='Python', command=hanshu)
r1.pack()
r2 = tk.Radiobutton(window, text='c++', variable=var, value='C++', command=hanshu)
r2.pack()
# 多选部件
c1 = tk.Checkbutton(window, text='C', variable=var1, onvalue=1, offvalue=0, command=hanshu)
c1.pack()
c2 = tk.Checkbutton(window, text='Python', variable=var2, onvalue=1, offvalue=0, command=hanshu)
c2.pack()
# 窗口循环
window.mainloop()

下拉菜单的选项列表

# 创建一个下拉对象
menubar = tk.Menu(window)
# 创建一个file的菜单项(默认不下拉)
filemenu = tk.Menu(menubar, tearoff=0)
# 将创建的file装到menubar容器里面
menubar.add_cascade(label='file', menu=filemenu)

# 在file当中添加以下几个小按钮,每个按钮对应于一个操作
filemenu.add_command(label='New', command=操作)
filemenu.add_command(label='Open', command=操作)
# 添加一条分界线
filemenu.add_separator()
# 用tkinter里面自带的quit()函数
filemenu.add_command(label='Exit', command=window.quit)

# 添加一个二级菜单
submenu = tk.Menu(filemenu)
# 在file菜单里面的菜单
filemenu.add_cascade(label='Import', menu=submenu, underline=0)
# 在二级菜单里添加操作
submenu.add_command(label='little_1', command=操作)
# 创建菜单栏完成后,配置菜单栏的显示
window.config(menu=menubar)

页面区分

# 创建一个主Frame
frame= tk.Frame(window)
frame.pack()
# 子frame建立
frame_left = tk.Frame(frame)
frame_right = tk.Frame(frame)
# 其他frame长在主Frame上面
frame_1.pack(side='left')
frame_2.pack(side='right')

# 创建小组件显示在子frame上
tk.Label(frame_1, text='我在frame_1上', bg='green').pack()
tk.Label(frame_2, text='我在frame_2上', bg='green').pack()

提示信息窗口弹出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-10Frb3e0-1679623248728)(https://note.youdao.com/yws/public/resource/59a778834bc8d95ff20e7b55087b69ef/xmlnote/A605B2DF9E1749BB88CC64399B25F4FA/16789)]

# 一般放在按钮的函数里面调用的
tk.messagebox.showinfo(title='', message='')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工资到账啥也会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值