PySideSimplicissimus Module 4 ShowLicence Japanese

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

日本語 English [French]

ライセンスを表示する

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

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

pyside-uic licence.ui > ui_licence.py

プログラム一覧は次のとおりです:

#!/usr/bin/env python
# licence.py - display GPL licence

import sys

from PySide.QtGui import QApplication, QMainWindow, QTextEdit, QPushButton

from ui_licence import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
 def ''init''(self, parent=None):
 '''Mandatory initialisation of a class.'''
 super(MainWindow, self).''init''(parent)
 self.setupUi(self)
 self.showButton.clicked.connect(self.fileRead)

def fileRead(self):
 '''Read and display GPL licence.'''
 self.textEdit.setText(open('COPYING.txt').read())

if ''name'' == '''main''':
 app = QApplication(sys.argv)
 frame = MainWindow()
 frame.show()
 app.exec_()

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

  • licence.png

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

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

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

self.textEdit.setText(open('COPYING.txt').read())

内容を明快に伝えるやり方ではありませんが、Pythonプログラマーはこのように書くのを好みます。このコー​​ドは次の構文と同じ意味です:

#open file
fl = open('COPYING.txt')
tmp = fl.read()
self.textEdit.setText(tmp)

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