[简介]python 命令行UI库---DUI
Lettle
Lettle
发布于 2022-05-19 / 204 阅读 / 0 评论 / 0 点赞

[简介]python 命令行UI库---DUI

UI界面的各平台兼容一直是难以实现的问题,各种服务器后台的管理又需要一个简单易懂的图形界面来方便使用…

根据这种思想我开发了一个python实现的库—DUI

DUI库是用纯文本内容创造界面,各平台均能使用,windows效果极佳

附图 DUI-1.0.0测试窗口:
image
是不是非常酷炫?

后来又增加了几个功能,顺便随手写了个demo,现在DUI是这样的:

image-1652963908595

不只是一个界面,它还能有更多功能:按钮。比如我们现在输入"y"就能点击当前选中的“开始游戏”按钮:

image-1652963984667

这样我们开始了猜数游戏。老规矩,从0开始猜:

image-1652963998716

界面会自动出现一个文字信息,告诉我们不是0,那我们接着猜下去,这次比较幸运,猜到2就成功了,这时我们来到了成功的界面:

image-1652964011759

简单的猜数游戏界面能如此漂亮,这多亏了我们的DUI库。使用DUI库,获得这样的界面仅需几行优雅的代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#__author__ = "Lettle"
#QQ: 1071445082
#fileName: guess.py
 
'''
	DUI使用案例: 猜数游戏
		游戏将从0到10随机抽取一个数字, 用户输入数字, 系统会提示是否正确
		游戏有3个界面:主界面、游戏界面、结束界面
	DUI控件使用:
		Frame
		Window * 3
		Listener
		Text
		Button
'''
 
from DUI import *
from random import randint
def mainW():
	frame.showWindow(0)
def guess():
	an = randint(0,10)
	gameWindow.showWindow()
	while True:
		txt = listen.getText()
		try:
			res = int(txt)
		except:
			continue
		if res == an:
			gameWindow.updateWidget(4, Text())
			frame.addWindow(gameWindow, 1)
			frame.showWindow(2)
			frame.listener.run()
			return
		else:
			gameWindow.updateWidget(4, Text("猜错了!不是"+str(res)))
			frame.addWindow(gameWindow, 1)
			frame.showWindow(1)
 
frame = Frame()
#主界面
mainWindow = Window("主界面")
mainWindow.addWidget(2, Text("猜数游戏", 1))
mainWindow.addWidget(5, Button("开始游戏", onClick=guess))
mainWindow.addWidget(6, Button("结束游戏", onClick=quit))
frame.addWindow(mainWindow, 0)
#游戏界面
gameWindow = Window("猜数界面")
gameWindow.addWidget(2, Text("猜猜随机出来的是几(0-10)"))
gameWindow.addWidget(4, Text())
frame.addWindow(gameWindow, 1)
#游戏结束界面
overWindow = Window("猜数成功!")
overWindow.addWidget(2, Text("恭喜你猜对了!", 1))
overWindow.addWidget(5, Button("返回主界面", onClick=mainW))
frame.addWindow(overWindow, 2)
 
#设置监听器
listen = Listener(0)
dict = \
	{
		"quit": quit,
		"w": mainWindow.up,
		"s": mainWindow.down,
		"y": listen.confirm
	}
listen.setDict(dict)
frame.setListener(listen)
 
#主程序开始
t = time.time()
frame.showWindow(0)
frame.listener.run()

github地址: https://github.com/Python-Lettle/DUI

gitee地址: https://gitee.com/lettle/DUI

演示视频: https://www.bilibili.com/video/BV1a54y1V7Ji

python QQ交流群: 540717901

作者QQ: 1071445082