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

Lettle
Lettle
发布于 2022-05-19 / 33 阅读
0

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

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

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

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

附图 DUI-1.0.0测试窗口:

DUIv1.png

是不是非常酷炫?

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

DUI-new.png

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

DUI-guess.png

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

DUI-not0.png

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

DUI-finish.png

简单的猜数游戏界面能如此漂亮,这多亏了我们的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