PySideSimplicissimus Module 2 CloseButton Japanese: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:LanguageBindings]]<br />[[Category:LanguageBindings::PySide Japanese]]<br />[[Category:LanguageBindings::PySide::Newbie Tutorials]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
 
[[Category:PySide]]
[[Category:PySide]]
[[Category:PySide]]


* '''注:''' この記事は [[PySide_Newbie_Tutorials]]の部分的な一部です。
* '''注:''' この記事は [[PySide_Newbie_Tutorials]]の部分的な一部です。


'''日本語''' [[PySideSimplicissimus_Module_2_CloseButton|English]] [&quot;French&amp;quot;:http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/1-fermer/]
'''日本語''' [[PySideSimplicissimus_Module_2_CloseButton|English]] [[http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/1-fermer/ French]]


= 閉じる =
= 閉じる =
Line 17: Line 21:
ダウンロードしたら、次のようにPythonで読める形式に変換します:
ダウンロードしたら、次のようにPythonで読める形式に変換します:


<code><br />pyside-uic quitter.ui <s>o ui_quitter.py<br /></code>
<pre>
<br />ちょっとややこしいですが、別のコマンドを使い、Pythonが読める形式のファイル '''ui_quitter.py''' を作成しました。ファイルの命名規則は、名前を1つ覚えるだけ( '''quitter''' )で済む様にすると便利です。名前の残りの部分で、そのファイルの目的が分かるようにします。
pyside-uic quitter.ui -o ui_quitter.py
<br />注:setuptoolsがインストールされていないのに pyside-uic を実行すると、次のエラーが発生します。
</pre>
<br /><code> Traceback (most recent call last):<br /> File &quot;c:26\Scripts\pyside-uic-script.py&amp;quot;, line 5, in &lt;module&amp;gt;<br /> from pkg_resources import load_entry_point<br /> ImportError: No module named pkg_resources</code>
 
<br />setuptoolsはここにあります: &quot;http://pypi.python.org/pypi/setuptools&amp;quot;:http://pypi.python.org/pypi/setuptools
ちょっとややこしいですが、別のコマンドを使い、Pythonが読める形式のファイル '''ui_quitter.py''' を作成しました。ファイルの命名規則は、名前を1つ覚えるだけ( '''quitter''' )で済む様にすると便利です。名前の残りの部分で、そのファイルの目的が分かるようにします。
<br />プログラムの一覧は次のとおりです:
 
<br /><code><br />#!/usr/bin/env python<br /># quitter.py</s> provide a button to quit this &quot;program&amp;quot;
注:setuptoolsがインストールされていないのに pyside-uic を実行すると、次のエラーが発生します。
 
<pre> Traceback (most recent call last):
File "c:26\Scripts\pyside-uic-script.py", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources</pre>
 
setuptoolsはここにあります: [http://pypi.python.org/pypi/setuptools http://pypi.python.org/pypi/setuptools]
 
プログラムの一覧は次のとおりです:
 
<pre>
#!/usr/bin/env python
# quitter.py- provide a button to quit this "program"


import sys
import sys
Line 31: Line 48:
from ui_quitter import Ui_MainWindow
from ui_quitter import Ui_MainWindow


class MainWindow(QMainWindow, Ui_MainWindow):<br /> def ''init''(self, parent=None):<br /> super(MainWindow, self).''init''(parent)<br /> self.setupUi(self)
class MainWindow(QMainWindow, Ui_MainWindow):
def ''init''(self, parent=None):
super(MainWindow, self).''init''(parent)
self.setupUi(self)


if ''name'' == '''main''':<br /> app = QApplication(sys.argv)<br /> frame = MainWindow()<br /> frame.show()<br /> app.exec_()<br /></code>
if ''name'' == '''main''':
app = QApplication(sys.argv)
frame = MainWindow()
frame.show()
app.exec_()
</pre>


プログラムを実行すると、いつもの[x]のクリックと、ボタンのクリックのどちらからでもプログラムを終了できることが分かります。次のリンク先で、このGUIの画像を見ることができます:<br />* http://akabaila.pcug.org.au/pyside-images/quit.png
プログラムを実行すると、いつもの[x]のクリックと、ボタンのクリックのどちらからでもプログラムを終了できることが分かります。次のリンク先で、このGUIの画像を見ることができます:
* http://akabaila.pcug.org.au/pyside-images/quit.png


では、コードをじっくりと観察してみましょう。ボタンにプログラムの終了を可能しているのは、どこでしょうか?なさそうですね…
では、コードをじっくりと観察してみましょう。ボタンにプログラムの終了を可能しているのは、どこでしょうか?なさそうですね…

Latest revision as of 05:20, 10 May 2017

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]

閉じる

この例は5分以上かからないでしょう: このプログラムの目的は、 pushButton のクリックでプログラムの実行を終了できるようにすることです。いつものように Qt Designer から始めましょう。プログラムに少し色をそえて quitter(怠け者) と呼ぶことにします。そして Designer で作成した、ボタンを一つ持ったMainWindowを quitter.ui という名前で保存します。このファイルは私のホームページ内のディレクトリからダウンロードできます。

便利なように quitter.py のソースコードも同じ場所からダウンロードできるようにしてあります:

ダウンロードしたら、次のようにPythonで読める形式に変換します:

pyside-uic quitter.ui -o ui_quitter.py

ちょっとややこしいですが、別のコマンドを使い、Pythonが読める形式のファイル ui_quitter.py を作成しました。ファイルの命名規則は、名前を1つ覚えるだけ( quitter )で済む様にすると便利です。名前の残りの部分で、そのファイルの目的が分かるようにします。

注:setuptoolsがインストールされていないのに pyside-uic を実行すると、次のエラーが発生します。

 Traceback (most recent call last):
 File "c:26\Scripts\pyside-uic-script.py", line 5, in <module>
 from pkg_resources import load_entry_point
 ImportError: No module named pkg_resources

setuptoolsはここにあります: http://pypi.python.org/pypi/setuptools

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

#!/usr/bin/env python
# quitter.py- provide a button to quit this "program"

import sys

from PySide.QtGui import QMainWindow, QPushButton, QApplication

from ui_quitter import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
 def ''init''(self, parent=None):
 super(MainWindow, self).''init''(parent)
 self.setupUi(self)

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

プログラムを実行すると、いつもの[x]のクリックと、ボタンのクリックのどちらからでもプログラムを終了できることが分かります。次のリンク先で、このGUIの画像を見ることができます:

  • quit.png

では、コードをじっくりと観察してみましょう。ボタンにプログラムの終了を可能しているのは、どこでしょうか?なさそうですね…

見あたらない理由は、この機能が Qt Designer 上で作成されたからです。 Designerシグナルスロットエディタ を持っています。これを使って、こっそりとPushButton.click()シグナルとMainWindow.close()スロットを接続しました。これはquitter.uiファイルに埋めこまれ、その後の変換処理によって、ui_quitter.pyファイルに埋めこまれます。そしてこのファイルからUi_MainWindowクラスをインポートしました。このクラスはまたMainWindowクラスの祖先の一つでもあります。 Pythonの多重継承 を使って、ui_quitter.pyモジュール内のメソッドを簡単に使えるようにします 。

他にも様々なやり方があるので多重継承を避けることもできましたが、便利なら使ってもかまいませんよね? super は祖先へ掘り下げていって、 MainWindow の直近の祖先、つまり祖先のツリー全体を初期化します。

MainWindowinit メソッドで、その親に None を指定していることに気がついたでしょうか。これは MainWindow が、このプログラムの本当の メインウィンドウ であることをPySideに伝える指示のようなものです。