为了更好的复习软考,参考多方代码编写了这个复习工具,用python的tkinter,messagebox,xlrd,random写的。初始界面如下。
点击抽查,会在底下打印出一条知识点,右边黄色方框为计数部分,每到十次就会弹窗提示“休息”。
最后在cmd的py文件所在路径用pyinstaller -F -w heybitch.py导出exe文件即可。
源码如下:
from tkinter import *
from tkinter import messagebox
import xlrd
import random
on_hit = False
counter = 0
def books():
workbook = xlrd.open_workbook('D:\WORK\CODE\高级信息系统项目管理师.xlsx')
excel_sheet = workbook.sheet_by_index(0)
# 获取行数和列数
nrows_num = excel_sheet.nrows
ncols_num = excel_sheet.ncols
i = 1
while i <= 10:
if nrows_num > 10:
# 生成随机数
random_num = random.randint(1, nrows_num - 1)
num = int(excel_sheet.row(random_num)[0].value)
number = excel_sheet.row(random_num)[1].value
name = excel_sheet.row(random_num)[2].value
res2.set(num)
res.set(name)
res1.set(number)
i = i + 1
else:
messagebox.showinfo("数据不足,请添加")
break
def count():
global on_hit
if on_hit == False:
def counting():
global counter
counter += 1
label1.config(text=str(counter))
for i in [11, 21, 31, 41]:
if counter == i:
messagebox.showinfo('提示', '够钟休息啦,靓仔。')
elif counter == 51:
messagebox.showinfo('提示', 'coding time!')
counting()
def on_click():
books()
count()
root = Tk()
root.title('信息系统项目管理师')
root.geometry('580x600+500+250')
# root.resizable(False,False)#固定窗体大小
button = Button(root, text='抽查', command=on_click)
button.grid(row=0, column=0)
root.canvas = Canvas(root, height=700, width=700) # 创建画布
root.image_file = PhotoImage(file="D:/work/text/lyf3.gif") # 加载图片文件
root.image = root.canvas.create_image(0, 0, anchor='nw', image=root.image_file) # 将图片置于画布上
root.canvas.grid(rowspan=4, columnspan=4) # 放置画布(为上端)
label = Label(root, text='计数')
label.grid(row=0, column=1)
res = StringVar()
res1 = StringVar()
res2 = StringVar()
entry = Entry(root, width='4', textvariable=res2)
entry.grid(row=1, column=0)
entry1 = Entry(root, width='45', textvariable=res1)
entry1.grid(row=1, column=1)
label1 = Label(root, text='0', bg='yellow', height='3', width='4')
label1.grid(row=0, column=2)
message = Message(root, bg='black', foreground='white', textvariable=res)
message.grid(row=2, column=0, columnspan=3)
root.mainloop()