まず、これを視野に入れ始めます。
GTK を使用します。これは、1970 年代のコーディング スタイルの最高の伝統を使用して 1993 年に構築された巨大な C ライブラリです。これは、Photoshop の競合相手であり、伝説的なユーザー インターフェイスの大失敗をしたいという GIMP の実装を支援するために構築されました。典型的な gui フィールドには、getter と setter を持つ 40 以上のパラメータがあり、ほとんどが反復的です。痛みがあります。
GTK 自体は、GObject を使用して C で完全な動的型システムを管理します。これにより、暗黙的な継承を伴う一般的な引数リストでいっぱいのメソッドへのポインターの配列を手動で調べる必要があるデバッグが特別な喜びになります。また、ページが小さい場合にラベルのどこに省略記号を入れるかについて Pango 定数を使用するなど、まったく予期しないときに Pango ライブラリを介してジャンプすることになります。より多くの痛みを期待してください。
ここまでで、GTK インタラクションのすべてをアプリケーション固有の Model-View-Controller アーキテクチャにラップすることを誓ったことでしょう。これはいい。
Glade、または gtkBuilder、または Stetic を使用すると、コーラルは関数への 40 個のパラメーターの巨大な結合問題を解決できます。Glade は、コンポーネントを一緒にドラッグ アンド ドロップするための基本的な GUI ビルダーを提供します。パラメータと継承されたパラメータは多少分離されています。Glade の出力は .glade XML ファイルです。これを読み込んで、同じ名前の関数にコールバック (「シグナル ハンドラ」) をアタッチし、その XML のインメモリ バージョンをクエリまたは更新して、pyGTK を使用するウィジェットを取得します。操作する。空き地自体はきしみがあり、手入れが行き届いていません。
pyGTK を使用すると、GUI を構築するために面倒なほど細かい制御が可能になります。これは冗長なコピー アンド ペースト コードになります。各属性は個別の関数呼び出しになります。属性セッターは何も返さないため、呼び出しを連鎖させることは問題外です。通常、IDE は関数の意味について最小限のヘルプしか提供しないため、常に DevHelp やその他のツールを参照することになります。
GTK GUI は失敗することを意図しているとほぼ予想されるでしょう。