PySideSimplicissimus Module 6 AlternativeCombine Japanese: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:LanguageBindings]]<br />[[Category:LanguageBindings::PySide::Newbie Tutorials]]<br />[[Category:LanguageBindings::PySide Japanese]]
[[Category:LanguageBindings]]
[[Category:LanguageBindings::PySide::Newbie Tutorials]]
[[Category:LanguageBindings::PySide Japanese]]


* '''Note:''' この記事は[[PySide_Newbie_Tutorials]]の一部です。
* '''Note:''' この記事は[[PySide_Newbie_Tutorials]]の一部です。


'''日本語''' [[PySideSimplicissimus_Module_6_AlternativeCombine|English]] [&quot;French&amp;quot;:http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/5-combinaison-alternative/]
'''日本語''' [[PySideSimplicissimus_Module_6_AlternativeCombine|English]] ["French":http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/5-combinaison-alternative/]


= 組み合わせの代案 =
= 組み合わせの代案 =


この例題のプログラム名はcombine_alter.pyです。このプログラムはcombine.pyとほとんど同じ動作をしますが、わずかに違いがあります−多重継承を回避しているのです。多重継承はPythonの素晴らしい特徴ですが、多くのプログラマー、特に他の言語から移行した人々は、多重継承を使いたがりません。というのもPythonは多重継承をサポートする数少ない言語だからです(例えばC++は多重継承をサポートしていますが、javaやC#などの一般的なオブジェクト指向言語ではサポートされていません)。私達は最初に多重継承を使う方法を学びましたが、実はこのように多重継承には好き嫌いがあるのです。プログラム名をcombine.pyに&amp;quot;''alter&amp;quot;を追加したcombine_alter.pyとして、combine.pyとの違いをはっきりさせましょう。combine.uiとqrc_combine.pyには変更がないのでファイルのアップロードに頭を悩まされることはありません。そのまま使いましょう。プログラムはいつもの場所から入手できます。
この例題のプログラム名はcombine_alter.pyです。このプログラムはcombine.pyとほとんど同じ動作をしますが、わずかに違いがあります−多重継承を回避しているのです。多重継承はPythonの素晴らしい特徴ですが、多くのプログラマー、特に他の言語から移行した人々は、多重継承を使いたがりません。というのもPythonは多重継承をサポートする数少ない言語だからです(例えばC++は多重継承をサポートしていますが、javaやC#などの一般的なオブジェクト指向言語ではサポートされていません)。私達は最初に多重継承を使う方法を学びましたが、実はこのように多重継承には好き嫌いがあるのです。プログラム名をcombine.pyに"''alter"を追加したcombine_alter.pyとして、combine.pyとの違いをはっきりさせましょう。combine.uiとqrc_combine.pyには変更がないのでファイルのアップロードに頭を悩まされることはありません。そのまま使いましょう。プログラムはいつもの場所から入手できます。
<br />* http://akabaila.pcug.org.au/pyside-data/combine_alter.py と http://akabaila.pcug.org.au/pyside-data/combine/ です
<br />combine_alter.pyとcombine.pyとの違いはそれほど大きくありません。ui_combineのimport文を変更していますが、これは純粋に美しさのためです。ローカル変数uiが初期化構文の冒頭で導入されています。ご覧のようにuiはinit関数以外にも使用するので、クラス変数にも格納します。Pythonプログラマーにとってはおなじみだと思いますが、init関数の引数はローカル変数として受けとり、速やかにクラス変数へ格納します。
<br /><code><br />#!/usr/bin/env python<br /># combine_alter.py - combination of ShowGPL, About, Close scripts
<br />import sys<br />import platform
<br />import PySide<br />from PySide.QtGui import QApplication, QMainWindow, QTextEdit, QPushButton, QMessageBox, QIcon
<br />version''_ = '0.0.0'<br />from ui_combine import Ui_MainWindow as Ui<br />import qrc_combine


class MainWindow(QMainWindow):<br /> def ''init''(self, parent=None):<br /> super(MainWindow, self).''init''(parent)<br /> ui = Ui()<br /> # Store ui as class variable self.ui<br /> self.ui = ui<br /> ui.setupUi(self)<br /> ui.actionShow_GPL.triggered.connect(self.showGPL)<br /> ui.action_About.triggered.connect(self.about)<br /> iconToolBar = self.addToolBar(&quot;iconBar.png&amp;quot;)<br />#——————————————————<br /># Add icons to appear in tool bar - step 1<br /> ui.actionShow_GPL.setIcon(QIcon(&quot;:/showgpl.png&amp;quot;))<br /> ui.action_About.setIcon(QIcon(&quot;:/about.png&amp;quot;))<br /> ui.action_Close.setIcon(QIcon(&quot;:/quit.png&amp;quot;))<br />#——————————————————<br /># Show a tip on the Status Bar - step 2<br /> ui.actionShow_GPL.setStatusTip(&quot;Show GPL Licence&amp;quot;)<br /> ui.action_About.setStatusTip(&quot;Pop up the About dialog.&quot;)<br /> ui.action_Close.setStatusTip(&quot;Close the program.&quot;)<br />#——————————————————<br /> iconToolBar.addAction(ui.actionShow_GPL)<br /> iconToolBar.addAction(ui.action_About)<br /> iconToolBar.addAction(ui.action_Close)
* http://akabaila.pcug.org.au/pyside-data/combine_alter.py と http://akabaila.pcug.org.au/pyside-data/combine/ です


def showGPL(self):<br /> '''Read and display GPL licence.'''<br /> self.ui.textEdit.setText(open('COPYING.txt').read())
combine_alter.pyとcombine.pyとの違いはそれほど大きくありません。ui_combineのimport文を変更していますが、これは純粋に美しさのためです。ローカル変数uiが初期化構文の冒頭で導入されています。ご覧のようにuiはinit関数以外にも使用するので、クラス変数にも格納します。Pythonプログラマーにとってはおなじみだと思いますが、init関数の引数はローカル変数として受けとり、速やかにクラス変数へ格納します。


def about(self):<br /> '''Popup a box with about message.'''<br /> QMessageBox.about(self, &quot;About PyQt, Platform and the like&amp;quot;,<br /> &quot;&quot;&quot;&lt;b&amp;gt; About this program &lt;/b&amp;gt; v %s<br /> &lt;p&amp;gt;Copyright &amp;copy; 2010 Joe Bloggs.<br /> All rights reserved in accordance with<br /> GPL v2 or later - NO WARRANTIES!<br /> &lt;p&amp;gt;This application can be used for<br /> displaying OS and platform details.<br /> &lt;p&amp;gt;Python %s - PySide version %s - Qt version %s on s&amp;quot;&quot;&quot;  (''version'', platform.python_version(), PySide.''version'', PySide.QtCore.''version'', platform.system&amp;amp;#40;&amp;#41;))
<code>
#!/usr/bin/env python
# combine_alter.py - combination of ShowGPL, About, Close scripts


if ''name'' == '''main''':<br /> app = QApplication(sys.argv)<br /> frame = MainWindow()<br /> frame.show()<br /> app.exec_()<br /></code>
import sys
import platform
 
import PySide
from PySide.QtGui import QApplication, QMainWindow, QTextEdit, QPushButton, QMessageBox, QIcon
 
version''_ = '0.0.0'
from ui_combine import Ui_MainWindow as Ui
import qrc_combine
 
class MainWindow(QMainWindow):
def ''init''(self, parent=None):
super(MainWindow, self).''init''(parent)
ui = Ui()
# Store ui as class variable self.ui
self.ui = ui
ui.setupUi(self)
ui.actionShow_GPL.triggered.connect(self.showGPL)
ui.action_About.triggered.connect(self.about)
iconToolBar = self.addToolBar("iconBar.png")
#——————————————————
# Add icons to appear in tool bar - step 1
ui.actionShow_GPL.setIcon(QIcon(":/showgpl.png"))
ui.action_About.setIcon(QIcon(":/about.png"))
ui.action_Close.setIcon(QIcon(":/quit.png"))
#——————————————————
# Show a tip on the Status Bar - step 2
ui.actionShow_GPL.setStatusTip("Show GPL Licence")
ui.action_About.setStatusTip("Pop up the About dialog.")
ui.action_Close.setStatusTip("Close the program.")
#——————————————————
iconToolBar.addAction(ui.actionShow_GPL)
iconToolBar.addAction(ui.action_About)
iconToolBar.addAction(ui.action_Close)
 
def showGPL(self):
'''Read and display GPL licence.'''
self.ui.textEdit.setText(open('COPYING.txt').read())
 
def about(self):
'''Popup a box with about message.'''
QMessageBox.about(self, "About PyQt, Platform and the like",
"""<b> About this program </b> v %s
<p>Copyright &amp;copy; 2010 Joe Bloggs.
All rights reserved in accordance with
GPL v2 or later - NO WARRANTIES!
<p>This application can be used for
displaying OS and platform details.
<p>Python %s - PySide version %s - Qt version %s on s"""  (''version'', platform.python_version(), PySide.''version'', PySide.QtCore.''version'', platform.system()))
 
if ''name'' == '''main''':
app = QApplication(sys.argv)
frame = MainWindow()
frame.show()
app.exec_()
</code>


多重継承を使うか使わないか、どちらの方法を選ぶのかは基本的には好みの問題です。いずれにしても決めるのは簡単ですが、将来出会ったときのために、両方の方法についていくらかでも理解しておくと良いでしょう。
多重継承を使うか使わないか、どちらの方法を選ぶのかは基本的には好みの問題です。いずれにしても決めるのは簡単ですが、将来出会ったときのために、両方の方法についていくらかでも理解しておくと良いでしょう。


基本的なプログラム構成のわずかな表現の違いをお楽しみください!
基本的なプログラム構成のわずかな表現の違いをお楽しみください!

Revision as of 11:08, 25 February 2015


日本語 English ["French":http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/5-combinaison-alternative/]

組み合わせの代案

この例題のプログラム名はcombine_alter.pyです。このプログラムはcombine.pyとほとんど同じ動作をしますが、わずかに違いがあります−多重継承を回避しているのです。多重継承はPythonの素晴らしい特徴ですが、多くのプログラマー、特に他の言語から移行した人々は、多重継承を使いたがりません。というのもPythonは多重継承をサポートする数少ない言語だからです(例えばC++は多重継承をサポートしていますが、javaやC#などの一般的なオブジェクト指向言語ではサポートされていません)。私達は最初に多重継承を使う方法を学びましたが、実はこのように多重継承には好き嫌いがあるのです。プログラム名をcombine.pyに"alter"を追加したcombine_alter.pyとして、combine.pyとの違いをはっきりさせましょう。combine.uiとqrc_combine.pyには変更がないのでファイルのアップロードに頭を悩まされることはありません。そのまま使いましょう。プログラムはいつもの場所から入手できます。

combine_alter.pyとcombine.pyとの違いはそれほど大きくありません。ui_combineのimport文を変更していますが、これは純粋に美しさのためです。ローカル変数uiが初期化構文の冒頭で導入されています。ご覧のようにuiはinit関数以外にも使用するので、クラス変数にも格納します。Pythonプログラマーにとってはおなじみだと思いますが、init関数の引数はローカル変数として受けとり、速やかにクラス変数へ格納します。

#!/usr/bin/env python
# combine_alter.py - combination of ShowGPL, About, Close scripts

import sys
import platform

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

version''_ = '0.0.0'
from ui_combine import Ui_MainWindow as Ui
import qrc_combine

class MainWindow(QMainWindow):
 def ''init''(self, parent=None):
 super(MainWindow, self).''init''(parent)
 ui = Ui()
 # Store ui as class variable self.ui
 self.ui = ui
 ui.setupUi(self)
 ui.actionShow_GPL.triggered.connect(self.showGPL)
 ui.action_About.triggered.connect(self.about)
 iconToolBar = self.addToolBar("iconBar.png")
#——————————————————
# Add icons to appear in tool bar - step 1
 ui.actionShow_GPL.setIcon(QIcon(":/showgpl.png"))
 ui.action_About.setIcon(QIcon(":/about.png"))
 ui.action_Close.setIcon(QIcon(":/quit.png"))
#——————————————————
# Show a tip on the Status Bar - step 2
 ui.actionShow_GPL.setStatusTip("Show GPL Licence")
 ui.action_About.setStatusTip("Pop up the About dialog.")
 ui.action_Close.setStatusTip("Close the program.")
#——————————————————
 iconToolBar.addAction(ui.actionShow_GPL)
 iconToolBar.addAction(ui.action_About)
 iconToolBar.addAction(ui.action_Close)

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

def about(self):
 '''Popup a box with about message.'''
 QMessageBox.about(self, "About PyQt, Platform and the like",
 """<b> About this program </b> v %s
 <p>Copyright &amp;copy; 2010 Joe Bloggs.
 All rights reserved in accordance with
 GPL v2 or later - NO WARRANTIES!
 <p>This application can be used for
 displaying OS and platform details.
 <p>Python %s - PySide version %s - Qt version %s on s"""  (''version'', platform.python_version(), PySide.''version'', PySide.QtCore.''version'', platform.system()))

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

多重継承を使うか使わないか、どちらの方法を選ぶのかは基本的には好みの問題です。いずれにしても決めるのは簡単ですが、将来出会ったときのために、両方の方法についていくらかでも理解しておくと良いでしょう。

基本的なプログラム構成のわずかな表現の違いをお楽しみください!