UI界面的各平台兼容一直是难以实现的问题,各种服务器后台的管理又需要一个简单易懂的图形界面来方便使用
根据这种思想我开发了一个python实现的库---DUI
DUI库是用纯文本内容创造界面,各平台均能使用,windows效果极佳
附图 DUI-1.0.0测试窗口:
是不是非常酷炫?
后来又增加了几个功能,顺便随手写了个demo,现在DUI是这样的:
不只是一个界面,它还能有更多功能:按钮。比如我们现在输入"y"就能点击当前选中的“开始游戏”按钮:
这样我们开始了猜数游戏。老规矩,从0开始猜:
界面会自动出现一个文字信息,告诉我们不是0,那我们接着猜下去,这次比较幸运,猜到2就成功了,这时我们来到了成功的界面:
简单的猜数游戏界面能如此漂亮,这多亏了我们的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