我不是UI或网页设计师,虽然我制作了一堆简单的基于Tkinter的GUI,它们是测试低级代码和硬件的简单包装器,例如通过串口连接的设备的协议和数据采集测试器端口或网络。使用Python和Tkinter允许我的应用程序在支持Python的每个平台上运行。
现在我需要迁移我的GUI以支持单用户远程访问,同时仍支持本地用户访问。而且我仍然希望程序可以跨平台移植,甚至可以将它变成二进制可执行文件(通过py2exe,pyinstaller,py2app等)。
是否有任何工具包支持类似Tkinter的简单性?理想情况下,我想进行逐行重写以将Tkinter换成其他内容,而不是重新实现或广泛重构我的应用程序。
我找到了Web2Py和pyjs/Pyjamas,但它们对我的简单需求似乎有些过分。我还搜索了基于单实例(或单窗口)VNC或NX或RDP主机的解决方案,但没有找到任何适用的解决方案。
对我的Tkinter GUI进行“远程监控”的最直接方法是什么?
如果我确实需要完全转储我的Tkinter架构/代码并从头开始,那么哪种方法最能满足我的需求?
答案 0 :(得分:1)
我建议查看CherryPy。它非常容易包围并快速启动并运行 - 它没有许多其他框架所带来的开销/复杂性(Django !!)。不幸的是,你必须用html重写UI,但最终它很可能值得付出努力。查看Twitter的Bootstrap,以便在一个快速而有吸引力的用户界面上滚动,只是“有效”。
CherryPy应用程序的简洁示例:
import cherrypy
class SessionExample:
@cherrypy.expose
def index ( self ):
if cherrypy.session.has_key ( 'color' ):
out = "<font color='{0}'>{0}</font>".format(cherrypy.session['color'])
else:
out = ""
return out + ("<form method='POST' action='setColor'>\n"
"Please choose a color:<br />\n"
"<select name='color'>\n"
"<option>Black</option>\n"
"<option>Red</option>\n"
"<option>Green</option>\n"
"<option>Blue</option>\n"
"</select><br />\n"
"<input type='submit' value='Select' />\n"
"</form>"
@cherrypy.expose
def setColor (self, color):
cherrypy.session ['color'] = color
return "Color set to {}".format(color)
cherrypy.config.update({
"server.socketPort" = 8080,
"server.environment" = "development",
"server.threadPool" = 10,
"sessionFilter.on" = True
})
cherrypy.root = SessionExample()
cherrypy.server.start()
在网络浏览器中导航到localhost:8080,您应该会看到一个颜色选择器。简单!