15

PyGTK が時代遅れに見えるため、Python3 と GObject を使用してデスクトップ アプリケーションを開発するために Fedora 15 をインストールしました。

PyGTK 2.24.0 リリース 2011 年 4 月 1 日金曜日 Rafael Villar Burke によって PyGTK 2.24.0 がリリースされました。これは、GTK+ 2.24 API をサポートする安定版リリースです。 GTK+ を使用して Python アプリケーションを開発したい新規ユーザーは、PyGObject で利用可能な GObject-Introspection 機能を使用することをお勧めします。[...]

PyGobject 2.26.0がリリースされました。これは 2.26.x シリーズの最初の安定版リリースであり、イントロスペクションと Python 3 の初期サポートが導入されています。[...]

ソース: http://www.pygtk.org/

ストライクPython 3 と PyGObject を使用して、新しい Gnome3 アプリケーションを開発しています! 私はPyGObject ページにアクセスし、最新の安定バージョンが 2.28 (および Python3 は 2.26 以降でサポートされている) であり、Fedora にインストールされていることを確認しましたが、python2バインディングのみを使用しています。

一体何?

サイトの PyGobject のデモにアクセスし、ソースと、pygobject の代わりに pygtk + pygtk.require('2.0') を使用しているすべてのコードを調べました。

何か不足していますか?Python3 と PyGObject を使用して Gnome 3 アプリを開発するにはどうすればよいですか?

4

4 に答える 4

8

更新:ここに少しのドキュメントがあります: The Python GTK+ 3 Tutorial . GIOなどと関係があるものはまだありません。

それは...えっと、不可能ではありません...しかし、最新世代のGTK (&co) バインディングについて話しているので、物事は少し遅れているに違いありません. 開発者の努力は主に実際の開発に向けられており、ドキュメンテーションやサンプルなどはかなり遅れて追いつく傾向があります。これがフリーソフトウェアの現実です:/ PyGI もかなり最近に PyGObject にマージされたことを思い出してください。

だからあなたへの私の答えは:

  1. PyGTK/PyGObject メーリング リストに登録し、ポインタや参考資料、手持ちの情報を求めて、そこから進んでください。開発者への絶え間ないチャネルは、物事を常に把握する唯一の方法です。
  2. この瞬間 (とその男の顔の表情) を頭の片隅に隠しておいてください。そうすれば、準備が整ったときに、この内容の一部を書き留めて、文書として提出することができます。この状況にある次の不幸な魂のために。

(個人的には、新しい API を使って何かをまとめるために時間を割くのが待ちきれませんが、Gnome 3 が Debian になるまで延期しようとしています。そのような表現を顔につけるのを待ち望んでいます。)

于 2011-06-20T08:25:39.427 に答える
4

developer.gnome.orgのプラットフォーム デモは、GTK 3 と GNOME 3 で完全に記述されています。現時点では、Python で使用できるのは 2 つだけで、その他はまだ翻訳されていませんが、これで作業を開始できます。

残念ながら、GTK 3 が普及してから何年も経った今でも、オンラインで PyGTK 2 のチュートリアルに出くわすことはあります。それらにはまだ貴重な資料が含まれている可能性があり、X、Y、および Z を変更するだけで GTK 3 で動作するようになるため、誰もそれらを削除することはありません...これが、C チュートリアルをまだ見つけることができる理由ですGTK 1.2 オンライン。

したがって、PyGTK 2 のチュートリアルを見つけたら、それをホストしている誰かに電子メールを書いて、それが古くなっていることを伝えるのがよいでしょう。さらに良いことに、GTK 3 のチュートリアルを更新して、新しいバージョンを送ってください! 結局のところ、それはオープンソースです。

于 2011-06-20T11:59:55.633 に答える
2

import pygtk pygtk.require('2.0') にもかかわらず、それらはイントロスペクションで書かれています。近々

見分ける方法は、コードが gtk 自体をインポートする方法です

#import pygtk
#pygtk.require('2.0')
from gi.repository import Gtk, GLib, GObject, GdkPixbuf, Gio, Pango

コードが大文字の G で gtk を実行する場合、イントロスペクションを使用することを意味し、その間違いなくイントロスペクションも :) たとえば

#a pygtk window
awindow = gtk.Window()
#an introspection window
awindow = Gtk.Window()
于 2011-06-26T16:57:08.933 に答える
1

アプリケーションを開発するために今行ったことは、ここからGTK+ダウンロードしてインストールし、次を使用して新しい仮想環境を作成することです。Anaconda3

conda create --name xld-attribute-value-adder python=3.4 pip setuptools pygobject

( と を追加pipしたのは、仮想環境を作成するときにそれらを追加していたsetuptoolsためです。パッケージのインストールvirtualenvに使用できることは知っていますが、の名前は、使用できるか、似たようなものに使用されることを意味します。)pipsetuptools

次に、次のように、それを見つけることができず、次のように (素晴らしい、覚えておくべき別のツール!) を使用して検索できることをAnaconda教えてくれます。PyGObjectbinstar

binstar search -t conda pygobject

ただし、その結果、複数の検索結果が表示されます。

Name                      |  Version | Package Types   | Platforms      
 ------------------------- |   ------ | --------------- | ---------------
 ???/pygobject3            |   3.12.0 | conda           | linux-64       
                                      : None
 KristanArmstrong/pygobject |   3.14.0 | conda           | win-64         
                                      : PyGObject is a Python extension module that gives clean and consistent access to the entire GNOME software platform through the use of GObject Introspection.
 fallen/pygobject          |   3.14.0 | conda           | linux-64, linux-32
                                      : PyGObject is a Python extension module that gives clean and consistent access to the entire GNOME software platform through the use of GObject Introspection.
 jeanconn/pygobject        |          | conda           | linux-64       
                                      : None
 pkgw/pygobject3           |   3.12.0 | conda           | linux-64       
                                      : None
 ska/pygobject             |   2.20.0 | conda           | linux-64       
                                      : Pipeline running tools
 vgauthier/pygobject       |   3.10.0 | conda           | osx-64         
                                      : Python Bindings for GLib/GObject/GIO/GTK+

では、どれをインストールする必要があるかを知るにはどうすればよいでしょうか? もちろん、最新で安定したものが欲しいのですが...それらのいくつかは、私のlinux-64システム用ではないため、資格がありません。私のシステムで利用可能なものだけを表示する検索をしたいので、検索入力フィールドに次のように入力すると、 Anaconda Web サイト自体でこの種の検索が可能であるという投稿をいくつか見つけました。

access:public platform:linux-64 pygobject

現在、4 つの結果しか表示されていませんが、どれが最新であるか、またはどれを使用する必要があるかはまだわかりません。Anaconda の Web サイトでも、これらのリポジトリがいつ更新されたかはわかりません。したがって、バージョン番号が最も高いものがそれであると思います。実際、そのバージョンPyGObject 3.14はその日付のものである22 Sep 2014か、少なくともそのWebサイトの投稿はその日付のものであると述べているWebサイトを見つけました.

pygobject 引数なしで仮想環境を作成しました。

conda create --name xld-attribute-value-adder python=3.4 pip setuptools

次にそれをアクティブにしました:

source activate xld-attribute-value-adder

次に、次を使用してインストールPyGObjectします。

conda install -c https://conda.anaconda.org/fallen pygobject

その後Project Interpreter、IDE PyCharm でこのプロジェクトを変更しました (はい、現時点ではこのプロジェクトに PyCharm を使用しています) をPython 3.4、新しく作成した仮想環境のバイナリ ファイルに変更しました。

(Project Directory)/bin/python3.4

次に、次の行を含む python ファイルを開きます。

from gi.repository import Gtk

PyCharm は Gtk をまだ検出していないか、その他の問題があるため、赤い下線が引かれた部分をクリックして、バイナリ スタブを作成することを選択する必要がありましたGtkAlt+Enter

結局、それは最終的に機能しました:)

于 2015-08-03T20:09:05.167 に答える