从零开始的明日方舟python脚本创作(二)UI模块

引入的包

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的一个窗口。

加入UI控件
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模块的内容就是这样了,以上,祝好!

<think>好的,用户想从零开始学习和使用WebUI。首先,我需要明确用户提到的WebUI具体指什么。根据提供的参考引用,里面提到了“安装WebUI的虚拟环境”和“so-vits-svc webui”,这可能指的是基于Web的用户界面工具,比如在机器学习或深度学习项目中常用的WebUI,例如Stable Diffusion WebUI或者类似的工具。用户可能对如何安装、配置和使用这类工具有兴趣。 接下来,我需要考虑用户可能完全没有相关经验,所以需要从基础开始。步骤应该包括环境准备、安装依赖、配置设置、学习资源等。同时,参考引用中提到了虚拟环境的重要性,以及可能遇到的CUDA版本问题,这些都需要在步骤中强调,避免用户走弯路。 然后,我需要组织回答结构,确保逻辑清晰。可能需要分步骤说明,每个步骤详细但不过于复杂。例如,第一步安装Python和Git,第步创建虚拟环境,第三步克隆仓库和安装依赖,第四步配置模型,第五步运行和调试,第六步学习资源。每个步骤中要包含具体的命令和注意事项,特别是引用中提到的使用WebUI的虚拟环境来避免CUDA问题,这点很重要。 另外,用户可能还关心如何验证安装是否成功,如何处理常见问题,比如依赖冲突或CUDA版本不匹配。因此,在步骤中需要包含验证方法,并引用提供的参考内容,比如引用[2]提到如果WebUI能正常启动说明环境没问题,可以引导用户检查启动日志。 最后,生成相关问题需要考虑用户后续可能遇到的深入问题,比如性能优化、高级功能或与其他工具的整合。例如,如何优化WebUI的运行效率,如何添加插件,如何处理特定错误等。这些问题可以帮助用户进一步学习,同时也能覆盖更多潜在的需求。</think>### 从零开始学习和使用 WebUI 的步骤指南 #### 1. **环境准备** - **安装Python和Git**:WebUI项目通常基于Python开发,需安装Python 3.8+版本并配置环境变量。Git用于克隆项目仓库。 ```bash # 示例命令(Windows可下载安装包) sudo apt install python3 git # Linux/Mac ``` - **虚拟环境**:为避免依赖冲突,使用`venv`或`conda`创建独立环境[^1]。 ```bash python -m venv webui_env source webui_env/bin/activate # Linux/Mac webui_env\Scripts\activate # Windows ``` #### 2. **安装项目依赖** - **克隆仓库**:从GitHub获取WebUI项目代码(以Stable Diffusion WebUI为例): ```bash git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui ``` - **安装依赖**:使用项目提供的脚本或`requirements.txt`安装PyTorch等库。注意CUDA版本需与显卡驱动匹配。 ```bash pip install -r requirements.txt ``` #### 3. **配置模型与参数** - **下载预训练模型**:将模型文件(如`.ckpt`或`.safetensors`)放入指定目录,例如`models/Stable-diffusion`[^2]。 - **修改配置文件**:根据需求调整`config.json`中的参数(如分辨率、批大小)。 #### 4. **运行与调试** - **启动WebUI**:运行启动脚本,访问本地端口(如`http://127.0.0.1:7860`): ```bash python launch.py --listen --port 7860 ``` - **验证环境**:若界面正常加载且无报错,说明环境配置成功[^2]。 #### 5. **学习资源与进阶** - **官方文档**:阅读项目Wiki或README,了解功能模块(如文生图、图生图)。 - **社区案例**:通过GitHub Issues、Discord频道学习常见问题解决方法。 - **代码调试**:结合业务层逻辑(如引用[3]中的参数传递方法),尝试修改前端交互或后端处理逻辑。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值