日本語 English French [qt-devnet.developpez.com]

About Box

このダイアログボックスは、About Box自身のバージョン、使用中の QtPySidePython の各バージョン、及びプログラムが実行中の プラットフォーム を同時に表示します。

最初の一歩は Qt Designer を使ってメインウインドウを視覚的に設計します。プッシュボタンをひとつ追加しましょう。Saving Asを使って、ファイルにabout.ui (拡張子uiは Qt Designer が追加します)と名前をつけます。

私のホームページに about.ui を用意しました 。以下のURLからダウンロード可能です。 Qt Designer で開いて、今の段階でGUIがどのように見えるか確認しましょう。 about.py のソースも同様にダウンロード可能です。実際のところ、コードをディスプレイからクリップボードへコピーしてエディタに貼りつけるよりも、オリジナルのソースコードをダウンロードするほうがより安全です。ちなみに私は、絶対お薦めのあるエディタを使ってPythonプログラミングをしています。PythonとQtで書かれた Eric4 です。

クリックで about.ui をダウンロードして、時間のあるときに Qt Designer で見てください。

about.ui はXMLファイルです。でも読めないからといって気にしないように ー Pythonだって読むことができないんですから…Pythonが読めるようにするには、pyside-toolsパッケージのスクリプトを使って処理をする必要があります:

  1. pyside-uic about.ui > ui_about.py

これでPythonの読み込み可能なファイル ui_about.py がプログラムでインポートして使えるようになりました。次のコードリストをご覧ください。

  1. #!/usr/bin/env python
  2. # about.py - display about box with info on platform etc.
  3.  
  4. import sys
  5. import platform
  6.  
  7. import PySide
  8.  
  9. from ui_about import Ui_MainWindow
  10.  
  11. __version__ = '0.0.1'
  12.  
  13. class MainWindow(QMainWindow, Ui_MainWindow):
  14.     def __init__(self, parent=None):
  15.         super(MainWindow, self).__init__(parent)
  16.         self.setupUi(self)
  17.         self.aboutButton.clicked.connect(self.about)
  18.                
  19.     def about(self):
  20.         '''Popup a box with about message.'''
  21.         QMessageBox.about(self, "About PySide, Platform and the like",
  22.                 """<b>Platform Details</b> v %s
  23.                <p>Copyright 2010 Joe Bloggs.
  24.                All rights reserved in accordance with
  25.                GPL v2 or later - NO WARRANTIES!
  26.                <p>This application can be used for
  27.                displaying platform details.
  28.                <p>Python %s -  PySide version %s - Qt version %s on %s""" % (__version__,
  29.                 platform.python_version(), PySide.__version__,  PySide.QtCore.__version__,
  30.                 platform.system()))
  31.  
  32. if __name__ == '__main__':
  33.     app = QApplication(sys.argv)
  34.     frame = MainWindow()
  35.     frame.show()
  36.     app.exec_()

メインプログラムは最後にありますが、これはよくやるパターンです。アプリケーション app を呼び出して、 sys.argv のすべてのコマンドライン引数を渡します。 window frame の名前は frame ですが他の名前でもかまいません。 frame.show() は、アプリケーションサイクルが実行を開始した直後に frame を表示するようシステムに通知します。最後に app.exec_() でアプリケーションサイクルを開始します。アプリケーションサイクルは、ボタンのクリックなど、ユーザーとの対話を可能にします。

aboutダイアログのポップアップボックス内のテキスト内容に関するコードの注意がひとつ:文字 copy; はHTML表現で解釈されると、円で囲まれた小さなc(著作権マーク)になります。実際にプログラムでは前の文に示したように記述する必要があります。

この about.py は他のPythonプログラムと同じように実行できます。是非ためしてください!

Return to PySideSimplicissimus

Categories:

  • PySide Japanese
  •