問題タブ [gtk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
2008 参照

python - PyGTK デスクトップ アプリケーションのモジュールを首尾一貫して整理するにはどうすればよいですか?

私は PyGTK でデスクトップ アプリケーションに取り組んでおり、ファイル編成のいくつかの制限にぶつかっているようです。これまでのところ、プロジェクトを次のように構成しました。

  • application.py - プライマリ アプリケーション クラス (ほとんどの機能ルーチン) を保持します。
  • gui.py - 疎結合の GTK gui 実装を保持します。シグナルのコールバックなどを処理します。
  • command.py - アプリケーション クラスのデータに依存しないコマンド ライン自動化機能を保持します。
  • state.py - 状態データの永続性クラスを保持します

これはこれまでのところかなりうまく機能していますが、この時点で application.py がかなり長くなり始めています。私は他の多くの PyGTK アプリケーションを見てきましたが、同様の構造上の問題があるようです。ある時点で、プライマリ モジュールが非常に長くなり始め、明確さとオブジェクト指向を犠牲にすることなく、コードをより狭いモジュールに分割する明確な方法はありません。

GUI を主要なモジュールにし、ツールバー ルーチン、メニュー ルーチンなどに個別のモジュールを用意することを検討しましたが、その時点で、OOP の利点のほとんどを失い、すべてを参照するすべてのシナリオになってしまうと思います。 .

非常に長い中央モジュールを持つことに対処する必要がありますか、それともクラス ブラウザーにあまり依存する必要がないようにプロジェクトを構造化するためのより良い方法はありますか?

編集私

わかりましたので、すべての MVC に関するポイントを取り上げました。私のコードには MVC の大まかな概算がありますが、モデルとコントローラーをさらに分離することで、ある程度の距離を稼ぐことができることは確かです。しかし、私は python-gtkmvc のドキュメントを読んでいます (ちなみに、これは素晴らしい発見です。参照していただきありがとうございます)。私のアプリケーションは 1 つのグレード ファイルで、通常は 1 つのウィンドウです。したがって、モジュールの MVC ロールをどれだけ厳密に定義しても、1 つのコントローラー モジュールでほとんどすべてを実行することになります。確かに、私は適切な MVC の実装について少し曖昧であり、調査を続けますが、そうではありません。

ウィンドウの個別のセクション (ツールバー、メニューなど) に対して個別のコントローラー/ビューのペアを検討する必要がありますか? おそらくそれが私がここで見逃していることです。これは、S. Lott が 2 番目の箇条書きで言及していることのようです。

これまでの回答に感謝します。

0 投票する
3 に答える
5057 参照

python - Windows、Linux、および MacOS で Python からディスプレイのアイドル時間を判断するにはどうすればよいですか?

ユーザーが最後にキーを押したり、マウスを動かしたりしてから、アプリケーションだけでなく、「コンピューター」全体 (つまり、ディスプレイ) でどのくらいの時間が経過したかを知りたいです。コンピューターに接続し、画面にポップアップする通知を観察できます。

これを純粋に (Py)GTK+ から実行したいのですが、プラットフォーム固有の関数を呼び出すことはできます。理想的には、すでに Python からラップされている関数を呼び出したいのですが、それが不可能な場合でも、ctypes実際に何を探しているかを知っている限り、C やコードの知識はあまりありません。

Windows では、必要な機能は だと思いますがGetLastInputInfo、それは pywin32 によってラップされていないようです。何かが足りないことを願っています。

0 投票する
5 に答える
529 参照

winapi - Windows 上のネイティブ GTK#?

cygwin を使用せずに Windows 用の GTK# の最新バージョンをコンパイルするにはどうすればよいですか?

ありとあらゆる助けをいただければ幸いです。

0 投票する
2 に答える
353 参照

python - GTK で実行中のアプリケーションのリストを取得するにはどうすればよいですか?

実行中のアプリケーションのリストを取得するにはどうすればよいですか? 画面下部のパネルにあるものを指しています。

0 投票する
1 に答える
1235 参照

python - pygtk グレードの質問: この単純なスクリプトが機能しないのはなぜですか?

私は、Grade を使用して UI をまとめる小さな pygtk アプリケーションを作成しています。すでに機能するウィンドウをいくつか作成しましたが、何らかの理由でこのウィンドウが機能しません。次のトレースバックを取得します。

test.py の内容は次のとおりです。

そして、ここに空き地ファイルtest.gladeがあります:

奇妙なことに、signal_autoconnect(self) 呼び出しを実行すると、ウィンドウが開きます。しかし、その呼び出しを「self.on_TestClass_destroy(self, None, None)」に置き換えると、同じ NameError 例外が返されます。

正常に動作する他のいくつかのウィンドウ クラスを作成したため、これが動作しない理由が本当にわかりません。

次のコードは、ここの誰かのために機能していますか?

0 投票する
4 に答える
5649 参照

python - Python GTK MVC

PyGTK を使用して、Python 用の優れた MVC フレームワークを探しています。Kiwiを見てきましたが、特に Gazpacho Glade の代替品を使用すると、少し物足りないことがわかりました。

他に素晴らしいデスクトップ Python MVC フレームワークはありますか? 私は、Web アプリケーションを必要としない数少ない (らしい) 人の 1 人です。

0 投票する
4 に答える
3853 参照

python - 多くのウィンドウがある空き地プロジェクトを処理する方法

現在、16 個のウィンドウ/ダイアログがあり、約 130KB の PyGTK/glade アプリケーションに取り組んでおり、最終的には約 25 個のウィンドウ/ダイアログがあり、約 200KB になります。現在、すべてのウィンドウを 1 つのモノリシック グレイド ファイルに格納しています。ウィンドウを実行すると、次のように呼び出します...

各ウィンドウを独自のグレードファイルに分割する方が良いのではないかと思います。25 個のウィンドウ/ダイアログを含む 1 つのグレード ファイルの代わりに、それぞれ 1 つのウィンドウ/ダイアログを含む 25 個のグレード ファイルを作成し、次のように呼び出します。

これを行うための最良の方法は何だと思いますか?ある方法は別の方法よりも多くのリソースを消費しますか? 個々のグレード ファイルに移動することの良い点の 1 つは、ウィジェットの名前付けが簡単になることです。たとえば、すべての OK ボタンに「windowxyz_ok」という名前を付けていますが、単に「ok」に変更することもできます。物事をよりシンプルにします。欠点は、さまざまなウィンドウに変更を加えるのが少し不便なことです。

私はあらゆる議論にオープンです。ありがとう!

0 投票する
1 に答える
1028 参照

macos - Mac OS X の GTK で alt/option キーが押されているかどうかを検出するにはどうすればよいですか?

Mac OS X の GTK で、マウスのドラッグ中に Alt/Option キーが押されたかどうかを検出したいと考えています。私は pygtk を使用しています。通常、alt を押し続けると MOD1_MASK が event.state に追加されますが、alt は event.state にまったく影響しません。キーを押すイベントでは、alt は gtk.keysyms.kana_switch として表示されますが、ユーザーが別のアプリケーションで alt を押して、クリックして私のものに切り替える可能性があるため、これは私の目的には十分ではありません。

alt/option が event.state の修飾子として表示されるような設定はありますか? または、キーダウン イベントが別のアプリケーションに送信された場合でも、キーが現在押されているかどうかを検出する方法はありますか?

0 投票する
3 に答える
1878 参照

windows - Windowsで使用できるGTK端末コンポーネントはありますか?

通常のUbuntuインストールだけでなくWindowsでも使用する必要があるターミナルのようなアプリケーションを構築する必要があります。コマンドを受け入れ、ある種のコマンド履歴を出力と一緒に表示できる端末コンポーネントを探していました。

gnome-terminalで使用されるVTEというコンポーネントがありますが、Unix固有の機能に依存しているため(見たところ)、Windowsでコンパイルできませんでした。WindowsまたはVTEを構築するための何らかの方法で構築できる他の端末のようなGTKコンポーネントを知っていますか?

0 投票する
3 に答える
305 参照

email - POP または IMAP を使用しないメール クライアント

私の大学は、POP や IMAP などを介してメールにアクセスすることを拒否したため、通知領域に配置され、メール クライアントの通知機能を実行する GTK ベースの C アプリを作成したいと考えています。POP や IMAP が使えないので、どのようにしたらよいでしょうか?HTML をスクレイピングして、未読メールなどにのみ存在するタグを探すことができると思いますか?

何か案は?