2013-03-06 55 views
2

我不是用户界面或网页设计师,虽然我已经制作了一堆简单的基于Tkinter的GUI,它们是简单的封装来测试底层代码和硬件,比如通过串口连接设备的协议和数据采集测试仪或网络。使用Python和Tkinter允许我的应用程序在支持Python的每个平台上运行。迁移tkinter GUI以进行远程访问?

现在我需要迁移我的GUI以支持单用户远程访问,同时仍支持本地用户访问。我仍然希望程序可以跨平台移植,甚至可以将它制作成二进制可执行文件(通过py2exe,pyinstaller,py2app等)

是否有任何工具包支持Tkinter-像简单?理想情况下,我想做一个换行重写来交换Tkinter的其他内容,而不是重新实现或广泛重构我的应用程序。

我发现Web2Pypyjs/Pyjamas,但他们似乎是为我的简单需求矫枉过正。我还搜索了基于单实例(或单个窗口)的VNC或NX或RDP主机的解决方案,但没有发现任何适用的解决方案。

什么是最直接的方式来“遥控”我的Tkinter图形用户界面?

如果我确实需要彻底转储我的Tkinter架构/代码并从头开始,那么最好的方法能够满足我的需求?

+0

刚刚找到[winswitch](http://winswitch.org),我正在查看它。 – BobC 2013-03-06 21:40:15

回答

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在Web浏览器,你会看到一个颜色选择器。简单!

+0

是否有CherryPy示例应用程序使用类似Tkinter的小部件(至少是按钮和文本框)?我希望看到一个有效的控制和数据流示例,以便我可以了解使用它所需的工作/代码。也可以用作模板,因为我不太了解HTML。 – BobC 2013-03-06 23:36:36

+0

一旦你转向HTML世界,控制流的工作方式有点不同。你将不再有“主要”或“消息处理”循环;相反,函数是通过加载URL来触发的。这应该让你了解控制/数据流。答案更新了选择颜色的非常基本的形式。我建议在这里阅读更多(也教你关于模板):http://genshi.edgewall.org/wiki/GenshiTutorial – jdiaz5513 2013-03-07 03:00:08