Tkinter 介绍
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
所用组件
Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。
(脚本所用到的组件)
Button: 按钮控件;在程序中显示按钮。
Label: 标签控件;可以显示文本和位图
涉及代码
1.先创建一个空界面
from tkinter import *
root = Tk()
# 界面题目
root.title(f"小可爱")
#界面大小
root.geometry('400x300')
root.mainloop()
2.给空界面加上配置好的 label 和 button
from tkinter import *
import random
root = Tk()
# 界面题目
root.title(f"小可爱")
#界面大小
root.geometry('400x300')
value_label = Label(root ,text='1111111111', font = '仿宋 19 normal')
value_label.pack(pady = 15,fill = BOTH,expand = True)
history_label = Label(root ,text = '获奖号码展示', font = '楷体 9 normal', wraplength = 400)
history_label.pack(side = BOTTOM,pady = 15)
do_button = Button(root, text = '开始', font = '仿宋 9 normal', width = 20,cursor = 'hand2')
do_button.pack(side = BOTTOM, pady = 15)
root.mainloop()
3.在button上绑定点击函数do_click
from tkinter import *
import random
is_scroll = False
def do_click():
# 按钮的开始与停止逻辑
global is_scroll
is_scroll = not is_scroll
button_text = "停止" if is_scroll else "开始"
do_button.config(text = button_text)
#调用抽奖函数
if is_scroll:
run_counter()
def run_counter():
pass
root = Tk()
# 界面题目
root.title(f"小可爱")
#界面大小
root.geometry('400x300')
value_label = Label(root ,text='1111111111', font = '仿宋 19 normal')
value_label.pack(pady = 15,fill = BOTH,expand = True)
history_label = Label(root ,text = '获奖号码展示', font = '楷体 9 normal', wraplength = 400)
history_label.pack(side = BOTTOM,pady = 15)
do_button = Button(root, text = '开始', font = '仿宋 9 normal', width = 20,cursor = 'hand2',command = do_click)
do_button.pack(side = BOTTOM, pady = 15)
root.mainloop()
4.将value_label和history_label的text变量改为可变变量
from tkinter import *
import random
is_scroll = False
def do_click():
# 按钮的开始与停止逻辑
global is_scroll
is_scroll = not is_scroll
button_text = "停止" if is_scroll else "开始"
do_button.config(text = button_text)
#调用抽奖函数
if is_scroll:
run_counter()
def run_counter():
pass
root = Tk()
# 界面题目
root.title(f"小可爱")
#界面大小
root.geometry('400x300')
#可变变量
value_var = StringVar()
#设置一个初始值
value_var.set('点击开始进入抽奖')
history_var = StringVar()
value_label = Label(root ,textvariable = value_var, font = '仿宋 19 normal')
value_label.pack(pady = 15,fill = BOTH,expand = True)
history_label = Label(root ,textvariable=history_var, font = '楷体 9 normal', wraplength = 400)
history_label.pack(side = BOTTOM,pady = 15)
do_button = Button(root, text = '开始', font = '仿宋 9 normal', width = 20,cursor = 'hand2',command = do_click)
do_button.pack(side = BOTTOM, pady = 15)
root.mainloop()
5.从本地文件phones.txt中获得手机号,然后写抽奖函数,即可实现功能(完整代码)
from tkinter import *
import random
is_scroll = False
def do_click():
# 按钮的开始与停止逻辑
global is_scroll
is_scroll = not is_scroll
button_text = "停止" if is_scroll else "开始"
do_button.config(text = button_text)
#调用抽奖函数
if is_scroll:
run_counter()
def run_counter():
def counter():
global phones,is_scroll
if is_scroll:
#label中的配置
value_label.config(foreground = 'black')
# 从phones列表中随机获取一个元素
value_var.set(random.choice(phones))
# 100毫秒刷新一次
root.after(100, counter)
else:
#label中的配置
value_label.config(foreground = 'red')
#中奖处理
#移除中奖号码
lucky_phone = value_var.get()
phones.remove(lucky_phone)
#写入中奖列表
#如果history_var有值,s就是中奖结果,否则s为空
s = '中奖结果:\n' if not history_var.get() else history_var.get()
# 将抽到的号码写到history_var变量中
history_var.set(s + ' ' + lucky_phone)
value_var.set(f'恭喜{lucky_phone}中奖')
counter()
with open('phones.txt','r') as f:
phones = f.readlines()
#左右去掉\n字符
phones = [x.strip('\n') for x in phones]
# print(phones)
root = Tk()
# 界面题目
root.title(f"小可爱")
#界面大小
root.geometry('400x300')
#可变变量
value_var = StringVar()
#设置一个初始值
value_var.set('点击开始进入抽奖')
history_var = StringVar()
value_label = Label(root ,textvariable = value_var, font = '仿宋 19 normal')
value_label.pack(pady = 15,fill = BOTH,expand = True)
history_label = Label(root ,textvariable=history_var, font = '楷体 9 normal', wraplength = 400)
history_label.pack(side = BOTTOM,pady = 15)
do_button = Button(root, text = '开始', font = '仿宋 9 normal', width = 20,cursor = 'hand2',command = do_click)
do_button.pack(side = BOTTOM, pady = 15)
root.mainloop()
学习Python最主要的还是要动手,去找一些自己感兴趣的脚本,代码去练习,练的越多,对于一些英语单词,特殊符号要比死记硬背要容易记得些。最后附上视频教程链接,b站一位很厉害的师傅。
视频教程地址