2

私はUIやWebデザイナーではありませんが、シリアルポートやネットワークを介して接続された機器のプロトコルやデータ取得テスターなど、低レベルのコードやハードウェアをテストするためのシンプルなラッパーであるシンプルなTkinterベースのGUIを多数作成しました。 。PythonとTkinterを使用すると、Pythonをサポートするすべてのプラットフォームでアプリを実行できます。

次に、ローカルユーザーによるアクセスをサポートしながら、シングルユーザーリモートアクセスをサポートするようにGUIを移行する必要があります。そして、私はまだプログラムがプラットフォーム間で移植可能であり、バイナリ実行可能ファイル(py2exe、pyinstaller、py2appなどを介して)にできるようにしたいと思っています。

Tkinterのようなシンプルさをサポートするツールキットはありますか?理想的には、アプリを再実装したり大幅にリファクタリングしたりするのではなく、行ごとに書き直してTkinterを別のものに交換したいと思います。

私はWeb2Pypyjs/Pyjamasを見つけましたが、それらは私の単純なニーズにはやり過ぎのようです。また、単一インスタンス(または単一ウィンドウ)のVNC、NX、またはRDPホストに基づくソリューションを検索しましたが、該当するものは何も見つかりませんでした。

Tkinter GUIを「リモート化」する最も直接的な方法は何ですか?

Tkinterアーキテクチャ/コードを完全にダンプして最初からやり直す必要がある場合、どのアプローチが私のニーズに最も適していますか?

4

1 に答える 1

1

CherryPy をチェックすることをお勧めします。頭を包み込み、すばやくサーバーを起動して実行するのは非常に簡単です。他の多くのフレームワーク (Django!!) が課すオーバーヘッドや複雑さはありません。残念ながら、HTML で UI を書き直す必要がありますが、最終的には努力する価値があるでしょう。Twitter の Bootstrap をチェックして、すぐに「機能する」魅力的な UI を試してみてください。

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()

Web ブラウザーで localhost:8080 に移動すると、カラー ピッカーが表示されます。単純!

于 2013-03-06T22:32:20.853 に答える