2013-03-06 38 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