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

ライセンスを表示する

この例では GPL ライセンスを表示しますが、 PySideLGPL でリリースしているのでご注意ください。正しいライセンスが表示されているか確認しましょう。

今回は便利なようにファイルを外部リポジトリに格納しています: COPYING.txt, licence.uilicence.py です。ファイルは次の場所にあります: COPYING.txt [akabaila.pcug.org.au], licence.ui [akabaila.pcug.org.au], licence.py [akabaila.pcug.org.au].
ダウンロードした後、 COPYING.txt をプログラムと同じディレクトリに配置してください 。このファイルには GPL v2 が記載されています。 licence.ui を次のようにPythonファイルに変換します:

  1. pyside-uic licence.ui > ui_licence.py

プログラム一覧は次のとおりです:
  1. #!/usr/bin/env python
  2. # licence.py - display GPL licence
  3.  
  4. import sys
  5.  
  6.  
  7. from ui_licence import Ui_MainWindow
  8.  
  9. class MainWindow(QMainWindow, Ui_MainWindow):
  10.     def __init__(self, parent=None):
  11.         '''Mandatory initialisation of a class.'''
  12.         super(MainWindow, self).__init__(parent)
  13.         self.setupUi(self)
  14.         self.showButton.clicked.connect(self.fileRead)
  15.        
  16.     def fileRead(self):
  17.         '''Read and display GPL licence.'''
  18.         self.textEdit.setText(open('COPYING.txt').read())
  19.        
  20. if __name__ == '__main__':
  21.     app = QApplication(sys.argv)
  22.     frame = MainWindow()
  23.     frame.show()
  24.     app.exec_()

プログラムを実行してボタンをクリックすると、TextEditウィンドウにライセンスの一覧が表示されます。以下のリンクをクリックして画像を確認してください。外部に保存しています:

コード全体は AboutClose スクリプトにとてもよく似ています。ここで興味深い構文が2つあります:

  1. self.showButton.clicked.connect(self.fileRead)

このプッシュボタンはライセンスを表示するので showButton と名付けました。この構文で、クラスメソッド fileRead と showButton.clicked イベントを接続します。これによって showButton がクリックされると、Pythonのクラスメソッド fileRead が実行されます。 fileRead は次のPython的な構文を持ちます:
  1. self.textEdit.setText(open('COPYING.txt').read())

内容を明快に伝えるやり方ではありませんが、Pythonプログラマーはこのように書くのを好みます。このコー​​ドは次の構文と同じ意味です:
  1. #open file
  2. fl = open('COPYING.txt')
  3. tmp = fl.read()
  4. self.textEdit.setText(tmp)

こちらのほうがより明快ですね。しかしタイピング量が増え、Pythonがインタプリタ言語なので実行が少し遅くなります。どちらのスタイルを選ぶかは、個人の判断になります。
Return to PySideSimplicissimus

Categories:

  • PySide Japanese
  •