4

Web テクノロジー (HTML、XML、CSS、JavaScript) を使用して GUI アプリケーションの機能の一部を実装した経験は? メリット・デメリットをお願いします。

サーバー、リレーショナル データベース、AJAX、またはセッション管理用の Cookie も既存の Web アプリもありませんが、GUI を利用しながら、Web ウィジェット ( Qt WebKitなど) を使用して UI のかなりの部分をレンダリングおよび処理する GUI アプリです。よりリッチなインタラクションとより優れたデスクトップ統合を実現するためのフレームワークです。

PyQt を使用してこのアプローチが可能であることは既に検証済みです。コンテンツはファイル システムまたは文字列からレンダリングでき、フォームのイベント ハンドラーによって URL 要求 (画像またはクリック) をキャプチャして提供できます。CSS と JavaScript がサポートされていますが、おそらくいくつかの制限があります。

        # ...
        self.webView.page().setLinkDelegationPolicy(
            QtWebKit.QWebPage.DelegateExternalLinks
            )
        #... 

class TotiMainWindow(QtGui.QMainWindow):
    def linkClicked(self, url):
        pass # events arrive here

注: この質問は、これと以前に作成されたこの質問とは異なりますとりわけ GUI で Web テクノロジを使用する必要がないためです。ただし、ネットワーク接続が利用可能でなくてもアプリケーションが動作し、統合する必要があるという要件があります。以前のインフラストラクチャ要件 (.NET、Java、ブラウザー、またはデータベース サーバーなし) なしで、さまざまなプラットフォーム上の既定のデスクトップで問題なく使用できます。

注: この質問の別のバージョンを PMS に投稿しましたが、このアプローチに関する経験はほとんどありませんでした。

クロージングノート

André Pareis による一連のブログ投稿で、探していた情報のほとんどを見つけました。

4

5 に答える 5

4

HTML/CSS やその他の Web テクノロジなどの Web マークアップを使用する最大の利点は、デスクトップ アプリの寿命が非常に長くなる可能性があることです。

現在、Google のエンジニアは Chromium OS に取り組んでおり、これは基本的に単一の GUI アプリケーションで構成されています...ブラウザ...

現在、実際には何も起こらないかもしれませんが、Web ブラウザーを介してどこからでもアクセスできるアプリケーションの数は明らかに増加傾向にあります。これがアプリケーション開発の未来だと私には思えます。

これらのテクノロジを使用することで、アプリを Web アプリケーションとして利用可能にする必要があると判断した場合に対処しなければならない問題が 1 つ減ります。

更新: 数年前、コール センター用の Agent Desktop を開発しました。これは基本的に、ソケットを開いて電話システムと統合するローカル アプリケーションです。エージェントが使用するユーザー インターフェイスは、HTML、CSS、および JavaScript で構築されており、そのエクスペリエンスは素晴らしいものです。2010 年に最新のアップデートをリリースし、専門的な CSS の再設計を行ったとき、エージェントは皆、操作が簡単であるだけでなく、使いやすさにも非常に感銘を受けました。

将来的には、これを 100% ブラウザーに移植する予定ですが、COM が電話システムと統合されているため、現時点ではローカル アプリケーションである必要があります。

于 2011-01-06T01:11:18.390 に答える
2

Windows XP が新しくなった頃のプロジェクトで、まさにこれを行いました。

これにより、私のチームにはいくつかの利点がありました。

  • 比較的手間がかからない見栄えの良い UI
  • CSS を使用して一貫した方法で UI のスタイルを簡単に変更する
  • C++ との比較的単純な統合 (UI からの関数の呼び出し、およびその逆)

私たちが見た欠点は次のとおりです。

  • 一部のあまり良くないファイアウォールは、内部リソース (つまり、UI の他の HTML ページ) へのアクセスを Web リクエストと見なしていました。
  • 必要なリソースの追加とアクセスは、場合によっては少し面倒になる可能性があります
  • アプリケーションでの JS の実行を妨げる Internet Explorer のプロパティを設定することができました。

一部の Windows XP:s プログラムがこのアプローチを使用していることに注意してください。

これはおそらく、UI の小さな、よりウィザードのような部分 (UI をほぼ完全に構成していた) で最もうまく機能します。

それ以来、私は実際には ui プロジェクトに関与していないので、このアプローチが今でも有効かどうかはわかりません... ただし、MFC ベースのアプリケーションでは HTML ベースのダイアログを使用できることはわかっています。

于 2011-01-14T16:24:45.363 に答える
1

2005 年に同様の状況で、オフラインデータの取得と検証のために、XForms、CSS、JavaScript、XML、および XML スキーマを使用してスタンドアロンの Web アプリケーションを作成しました。優れた XForms -> HTML + JS トランスフォーマー (千葉) により、最初のリリース以降、バグ修正なしで機能しました。大型ハドロン衝突型加速器のトンネルでテスト データを収集するプロジェクトのために、約 12 人のエンジニアによって 6 ~ 12 か月間 (IIRC) 使用されました。そのプロジェクトの最大の驚きは、オフラインで使用する場合でも、Web プラットフォームを使用するときに無料でどれだけ得られるかということでした。強くお勧めします。

于 2011-01-13T16:28:21.863 に答える
0

Mozillaプラットフォーム上に構築されたアプリケーションはかなりたくさんあります。HTMLの代わりにXMLベースのXULを使用するため、100%Webテクノロジーではありませんが、残りは実際にWebスタック(JavaScript、CSS)です。これらの中で最も成功したのはOpenKomodoであり、商用の兄貴であるKomodoIDEです。

一方、Qtに関する限り、最新バージョン4.7ではQML言語を使用してGUIを構築できます。名前に誤解を与えないでください。マークアップではなく、実際にはアプリ固有の拡張機能を備えたJavaScriptです。

于 2011-01-14T16:07:05.560 に答える
0

主な問題は、開発速度やユーザー インターフェイスの品質が低下することです。多くの。Seaside を使用していない限り、デスクトップ アプリを開発する方がはるかに高速です。

于 2011-01-14T16:03:56.397 に答える