Python + Qt#1の最初のステップ

このチュートリアルは、プログラミング言語としてPythonを使用してQTフレームワークの使用法を教えることに焦点を当てています。このため、PySideとPyQtの両方を使用できますが、このチュートリアルの作成者はLGPL PySideライセンスの方が好きなので、このチュートリアルではPySideを使用します。 GPLやPyQtコマーシャルよりも。

まず... Pythonとは何ですか?

ウィキペディアによると:

「Pythonは非常に高レベルのインタープリター型プログラミング言語であり、その哲学は非常にクリーンな構文を強調し、読み取り可能なコードを助長します。」

Pythonはマルチパドラジムプログラミング言語であるため、Pythonプログラミングのさまざまなパラダイムをサポートします。たとえば、オブジェクト指向プログラミング(OOP)、命令型プログラミング(構造化)、および程度は低いものの関数型プログラミングをサポートします。

それだけで?

いいえ、それは動的型付け言語でもあります。つまり、Pythonを使用すると、プログラムの実行中に同じ変数に異なるタイプの値を割り当てることができます。利点と見なされるものもあれば、欠点と見なされるものもあります。自分で確認してください。 。

すでに述べたものに加えて、Pythonは(他の多くのように)Web環境とWebデスクトップの両方でプログラミングすることを可能にし、クロスプラットフォームでもあり、現在はGnu / Linux、Windows、Mac osx、Androidをサポートしています(変形)。

QTとは何ですか?

QTは元々Nokiaによって開発されたマルチプラットフォームフレームワークであり、後でDigiaに販売され、アプリケーション開発に使用されます。C++で記述されていますが、Bindings(この場合はPySideまたはPyQt)

PySideとPyQtの違い

主に

  • ライセンス、PySideはLGPLの条件の下でライセンスされ、PyQTはGPLの条件の下で、または商用ライセンスの下でライセンスされているため、クローズドアプリケーションを作成する場合は料金を支払う必要があります。
  • PySideはNokiaによって作成され、PyQtはRiverBankによって作成されています。
  • PySideを使用すると、各QTオブジェクトのQStringを使用するたびにSTRを使用する手間が省けます。

完全な変更を詳しく説明できます ここで.

準備:

Qtをインストールします:

Kdeとのディストリビューションがある場合は、必要なものがすでにあるはずです。そうでない場合は、次のようになります。

sudo apt-get install qt4-dev-tools

PySideをインストールします:

sudo apt-get install pyside pyside-tools

私たちの最初のPython + QTアプリケーション

お気に入りのテキストエディタに移動します。sublime-text2をインストールすることをお勧めしますが、好きなものを使用できます。次のコードを入力して、常に拡張子「.py」で終わる名前で保存します。 、app1.pyとして保存します:

3

コードを参照してください

このようにコンソールから実行します。

python app1.py

このウィンドウが表示されます

2

それだけ?以前にコンソールしか持っていなかったとしたら、何について不満を言っているのですか? 何を期待しましたか、Erp? 男に来て、何かが始まります。

それでは、コードについて説明しましょう。

from PySide.QtGui import *

from sys import exit, argv

ここでは、PySideの実行に必要なモジュールをインポートします。

app = QApplication(argv)

appという名前でQapplicationインスタンスを作成します。

window = Qwidget()

QWidget()のインスタンスを作成します。

window.setWindowTitle("Primera App PySide")

Qwidgetのタイトルを「設定」するためのパラメーターとして文字列を受け取るsetWindowTitleメソッドを実行します。

window.show()

ウィンドウを表示します

exit(app.exec_())

最後に、QApplication()の実行の無限サイクルを実行します。

感謝

ここで私をフォローしてくれて、助けてくれた人たちに感謝します。 次のチュートリアルでは、QT Designerを使用してウィンドウを設計し、プロジェクトにインポートする方法について説明します。

さらに、フォーラムへのリンクを追加します desde linux ここには、Python チュートリアルとガイドの小さなライブラリを備えた小さなテーマがあり、次のようなさまざまな用語が含まれています。

基本的なPythonチュートリアル

WxPythonGenericName

PyQtとPySide

ジャンゴ

web2py

pythonでの科学的プログラミング。

などなど。

フォーラムへのリンク

彼らがあなたに仕えることを願っています、私はさようならを言います、いつもこの素晴らしいコミュニティに属することの喜びです。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   @ trust17

    投稿ありがとうございます!

  2.   アヌビス

    2つのこと:

    1. Qtは元々Nokiaによって開発されたのではなく、後にNokiaによって購入されたTrolltechによって開発されました。 その後、後者はQtをDigiaに売却しました。
    2.最初のアプリケーション例の画像がコードと一致しません。

    チュートリアルをありがとう、私はそれに従います🙂

    1.    f3niX

      あなたは絶対に正しいです私はそれを逃しました。 そして、あなたが正しいXNUMX番目のことは、クラスを使用せずに簡単にするために変更したことです。変更を見逃した、初心者のエラーです。 私はすでにいくつかの編集者がそれらを承認するための修正を渡しました。

    2.    f3niX

      変更できません。編集者にお任せします。

      ご挨拶。

      1.    ニーソンフ

        修正されたチュートリアルを編集者にメールで送信します。 編集者の一人である@nanoのメールに送ることができます
        mailto:nano.world.contact@gmail.com
        このようなチュートリアルを離れないでください
        よろしく

  3.   ドイツ語

    私が思うのは、コードで「from import *」を使用する理由です。

    ご挨拶!

    1.    f3niX

      これは正しいインポート方法です。このようにインポートするときは、インポートするモジュールの特定のクラスを指定し、モジュール全体を呼び出す必要はありません。

      ご挨拶。

      1.    ドイツ語

        そのような混乱を感じます。 さらに、PEP8では推奨されていません。

        「(モジュールインポート*からの)ワイルドカードインポートは、名前空間にどの名前が存在するかが不明確になり、リーダーと多くの自動ツールの両方を混乱させるため、避ける必要があります...」

        1.    f3niX

          私は主にNinja-Ideなどのプロのコードに導かれています。コードは次の場所にあります。 https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyこれはPyQtでも行われますが、いずれにせよ、いずれかの形式を使用するように強制するものは何もありません。

          ここでは、これについて、StackOverflowに関するディスカッションを見ることができます。

          http://stackoverflow.com/questions/710551/import-module-or-from-module-import

          そこでは、それぞれのスタイルの長所と短所について言及しています。

          1.    f3niX

            わかりました。わかりませんでした。QApplication、QWidgetの各要素について説明し、一般化するつもりはなかったので、理解しましたが、あなたは絶対に正しいです。

            誤解をお許しください。

          2.    ドイツ語

            いいえ、あなたは理解していなかったか、注意を払っていませんでした...つまり、«from module import *»を使用することを意味します。つまり、StackOverflowの投稿で«アスタリスク»を意味します...彼らは何か他のことについて話している、しかし、彼らはまだそれを強調しています:

            「どちらの方法も使用できますが、モジュールのインポートからは使用しないでください*。」

            今は分かりますか?

          3.    フェリペ

            ドイツ語は正しいです。 そのインポートモジュールに対して、すべてのコンテンツをアスタリスクでインポートする場合、fromモジュールインポートの用途は何ですか。 Sldsも同様に素晴らしい投稿です。

          4.    ドイツ語

            ああ、今はわかりました…とにかく、私はそれほど長くはかからないでください。私はPythonの初心者でもあります。 私のブログに立ち寄ると、私があなたと同じような投稿をしたことがわかりますが、PyGObjectを使用してGtk +3を使用しています。

            ご挨拶と感謝!

        2.    f3niX

          ここで私はPep8を離れ、スペイン語でimの使用を推奨します
          パッケージからコードをインポートするために相対インポートを使用することは強くお勧めしません。 すべてのインポートには、常にパッケージの絶対パスを使用してください。 PEP 328 [7]がPython2.5で完全に実装されている現在でも、相対的なインポートを使用することは強く推奨されていません。 絶対インポートはより移植性が高く、通常はより読みやすくなります。

          モジュールからクラスをインポートする場合、通常はこれを行うのが正しいです。
          myclassからインポートMyClass
          foo.bar.yourclassからインポートYourClass

          よろしく

          1.    ハンター

            これを読む: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli(コアpy開発者)は次のようなものを推奨しています:


            from PyQt4 import QtCore, QtGui

  4.   MSX

    第二部の時のためにもっと欲しかった!?
    ご挨拶🙂

  5.   エリオタイム3000

    非常に優れたチュートリアルに加えて、プログラミングがより快適な場合があります。

  6.   ハンター

    これは、最初から(QtDesignerを使用せずに)インターフェースの例です。

    https://github.com/xr09/metrocontador

    1.    f3niX

      dhunterアプリは素晴らしいです、ここでは彼らが私たちに電気代をいくら請求するかさえわかりません、ハハ挨拶。

      1.    ハンター

        ありがとうございます。個人的な使用のために作成し、他の人にサービスを提供するアプリのXNUMXつです。 ここキューバでは、レシートはレートで分類されており、アルゴリズムをコピーするのは簡単です。

  7.   ホセ・エロイ

    私はこのコースをよく知っています。 私は長い間クロスプラットフォームアプリケーションに興味を持っていましたが、Python + QT / Pysideの組み合わせは素晴らしいオプションだと思います。 イニシアチブへのご挨拶とおめでとうございます

  8.   ブライアンロドリゲス

    私はあなたが言うようにすべてのステップを正確に実行しましたが、ターミナルでapp1.pyアプリケーションを実行すると、トレースバック(最後の最後の呼び出し)が表示されます。
    ファイル "app1.py"、1行目、
    PySide.QtGuiからインポート*
    ImportError:PySide.QtGuiという名前のモジュールがありません。 これは何のために?

    1.    フェリペ

      これは、デフォルトのインタープリターとしてpythonのバージョンを使用しているが、そのバージョン用にpysideがインストールされていないためです。

      ファイルの先頭に追加してみてください:
      #!usr / bin / python3
      またはそうでなければ
      #!usr / bin / python2

      Eclipseをpydevと一緒に使用し、インタープリターを適切に構成することをお勧めします。
      SLDS

      1.    フェリペ

        #!/ usr / bin / python3
        またはそうでなければ
        #!/ usr / bin / python2

        1.    f3niX

          PySideはまだPython3と互換性がありません。注意してください。次に、インタラクティブなpythonコンソールを介してインポートをチェックするため、インストールされているかどうかがわかり、pipもインストールされます。

          1.    ブライアンロドリゲス

            どうすれば確認できますか?

          2.    f3niX

            コンソールでは「Python」を使用しますが、とにかく、投稿に残したライブラリに入り、「pythonforeveryone」をダウンロードすることをお勧めします。より多くのベースが必要です。

            挨拶と幸運。

          3.    ブライアンロドリゲス

            どうもありがとうございました、とても助かりました。

          4.    マウリシオトバレス

            友達を見てくださいF3niXこれを見つけました。Windows上のPython3.3.2(来週まで持っているもの)には32ビットと64ビットのバイナリがあるようです。あなたの例を試してみましたが、Python3.3.2で動作します。私はさまざまな環境をインストールするPyScripterを使用しています。Python3を開くと、Python 3のようなスクリプトが実行され、2.7を開くと、2.7として実行されます(論理的には、そのバージョンのpythonをインストールする必要があります...それは理解されています)

            http://qt-project.org/wiki/PySide_Binaries_Windows

            私はあなたをそこに残します、ゴシップ、多分それは他の誰かに役立つでしょう😀

      2.    ブライアンロドリゲス

        同じエラーが発生します。

        1.    ドイツ語

          PySideをインストールしていますか?

          1.    ブライアンロドリゲス

            インストールしました。

        2.    フェリペ

          そして、PyQT4を試してインストールし、PyQT4またはPyQt4のPySide行を変更して実行します。 ジョジョ。 日食を使用してください。 幸運。

          1.    ブライアンロドリゲス

            それ、どうやったら出来るの?。

  9.   カルリクス

    どうもありがとうございました !!! 第二章を待っています

    1.    f3niX

      今週の金曜日に私はそれを公開するかもしれません(大学は私に少しいっぱいです)挨拶。

  10.   マウリシオ・トバレス

    友達F3nIXあなたのチュートリアルを待っていますN°2、3、4…N hehehe

    私はすでに非常にエレガントなLinuxをインストールしており、PySideが待機しています。

    彼が新しい家庭教師を見せるように勧められたときを見てみましょう😀

    1.    f3niX

      すみません、ドラフトにありますが、仕事や勉強で時間が取れませんでした。今週は何かを出すことを約束します。

      大きな挨拶

  11.   ダンテ

    こんにちは、私は長い間Pythonの学習に興味を持っていましたが、いくつか疑問があります。 私が欲しいのは、私が働いている家業の情報プロセスを少し改善するためのアプリケーションを作ることです。私はウィンドウズのために何かをしたいと思っています。インターネットを介して、XNUMX台のコンピューターが接続するデータベースに接続します。 アプリケーションのGUIには多様性があり、めまいがします。 モダンで魅力的な外観にするために何をお勧めしますか? また、統計グラフを作成してレポートを印刷しますが、そのために何を使用できますか? よろしく

  12.   ホルヘ

    こんにちは、とても良いです、あなたの投稿、私は質問があります、私は問題なくpysideで作られた私のアプリを売ることができますか?

    1.    f3niX

      ええと、ライセンスは常にクレイジーですが、フリーソフトウェアライセンスでもソフトウェアを販売することができます。何が起こるかというと、LGPLとは異なり、GPLはコードの配布を強制します。

      とにかく、私はライセンスの専門家ではありません。

      ご挨拶。