import tkinter as tk #python自带的
import threading#python自带的
import time#python自带的
import Core#概述中提到的自己写的核心模块,不涉及到相关功能可移除
import math#python自带的
import random#python自带的
tkinter主要用来绘制UI界面
threading开启一个新线程,主要用来刷新功能模块信息。
time开启线程睡眠时间
Core连接UI模块和功能模块
math主要对浮点数取整
random涉及到随机睡眠时间处理
tkinter中其实有涉及到很多UI控件的使用,但是我只需要一个简陋的可点击的界面即可。所以内容比较粗糙,但是就自己使用的话,问题不大。
window=tk.Tk()
window.geometry("240x480+1200+100")
window.title("ArkNights Controller")
生成了一个标题为 Arknights Controller,位置在(1200,100)(相对于桌面),宽240,高480的一个窗口。
onClickStart=tk.Button(window,font=("微软雅黑",12),text="开始挂机",width=10,height=1,command=_clickStart_)
onClickStart.pack()
生成了一个可以点击的开始挂机按钮,点击执行的函数是“clickStart”。(函数的命名比较乱,没有统一,也懒得改了,惨!)。调用pack函数将按钮放置到父控件内部,可以带参数自定义设置位置,我这里就采用默认方式放置了。此按钮的文字信息被写死了,还可以用另一种方式设置文字信息。
btnROR=tk.StringVar()
btnROR.set('接受恢复理智')#btnROR.set('拒绝恢复理智')
onClickROR=tk.Button(window,font=("微软雅黑",12),textvariable=btnROR,width=10,height=1,command=_clickROR_)
onClickROR.pack()
以一个类似于字符串类型的变量,动态设置信息,相应的文字信息也就变化了,可以用来显示日志信息或者当前按钮的不同功能提示。
logInfo=tk.StringVar()
logNotifyInfo=tk.Label(window,font=("微软雅黑",12),textvariable=logInfo,width=10,height=50,)
logNotifyInfo.pack()
加入用来显示日志信息的一个文字显示区域。
class CoreThread:
def __init__(self, master):
self.master = master
self.starting()
# 定义线程1
def operateion(self):
#随机睡眠时间
interval=math.floor(random.random()*2+1)
#state作为是否继续执行相关功能的一个开关,可以在界面随时停止脚本的运行
while state:
#核心函数该有的功能写在这里
#code=Core.operate()
time.sleep(interval) #间隔1S
# 为方法开第一个单独的线程
def starting(self):
#启动线程1
self.thread1 = threading.Thread(target=self.operateion)
self.thread1.setDaemon(True) #线程守护,即主进程结束后,此线程也结束。否则主进程结束子进程不结束
self.thread1.start()
import tkinter as tk #python自带的
import threading#python自带的
import time#python自带的
import Core#概述中提到的自己写的核心模块,不涉及到相关功能可移除
import math#python自带的
import random#python自带的
state=False
window=tk.Tk()
window.geometry("240x480+1200+100")
window.title("ArkNights Controller")
logInfo=tk.StringVar()
btnROR=tk.StringVar()
#定义了一个执行核心函数的线程类
class CoreThread:
def __init__(self, master):
self.master = master
self.starting()
# 定义线程1
def operateion(self):
#随机睡眠时间
interval=math.floor(random.random()*2+1)
#state作为是否继续执行相关功能的一个开关,可以在界面随时停止脚本的运行
while state:
#核心函数该有的功能写在这里
#code=Core.operate()
time.sleep(interval) #间隔1S
# 为方法开第一个单独的线程
def starting(self):
#启动线程1
self.thread1 = threading.Thread(target=self.operateion)
self.thread1.setDaemon(True) #线程守护,即主进程结束后,此线程也结束。否则主进程结束子进程不结束
self.thread1.start()
def clickStart():
pass
def clickStop():
pass
def clickROR():
pass
def init():
btnROR.set('接受恢复理智')
logInfo.set('日志显示')
onClickStart=tk.Button(window,font=("微软雅黑",12),text="开始挂机",width=10,height=1,command=clickStart)
onClickStart.pack()
onClickStop=tk.Button(window,font=("微软雅黑",12),text="停止挂机",width=10,height=1,command=clickStop)
onClickStop.pack()
onClickROR=tk.Button(window,font=("微软雅黑",12),textvariable=btnROR,width=10,height=1,command=clickROR)
onClickROR.pack()
logNotifyInfo=tk.Label(window,font=("微软雅黑",12),textvariable=logInfo,width=10,height=50,)
logNotifyInfo.pack()
coret = CoreThread(window)
coret.starting()
window.mainloop()
init()
线程这块的代码是看的其他博客改的,我自己目前在前端的开发中很少用到。这里只是搭建了一个较为简陋的UI界面以及提供了一个线程专门用来执行其他模块里面的功能。UI模块的内容就是这样了,以上,祝好!