PySideSimplicissimus Module 2 CloseButton Japanese: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
* '''注:''' この記事は [[PySide Newbie Tutorials|PySide_Newbie_Tutorials]]の部分的な一部です。
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


'''日本語''' [[PySideSimplicissimus Module 2 CloseButton|English]] [http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/1-fermer/ French] ''[qt-devnet.developpez.com]''
[[Category:PySide]]
[[Category:PySide]]
[[Category:PySide]]


=閉じる=
* '''注:''' この記事は [[PySide_Newbie_Tutorials]]の部分的な一部です。
 
'''日本語''' [[PySideSimplicissimus_Module_2_CloseButton|English]] [[http://qt-devnet.developpez.com/tutoriels/pyside/simplissimus/1-fermer/ French]]
 
= 閉じる =


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


ダウンロードしたら、次のようにPythonで読める形式に変換します:
ダウンロードしたら、次のようにPythonで読める形式に変換します:
<pre>
pyside-uic quitter.ui -o ui_quitter.py
</pre>


ちょっとややこしいですが、別のコマンドを使い、Pythonが読める形式のファイル '''ui_quitter.py''' を作成しました。ファイルの命名規則は、名前を1つ覚えるだけ( '''quitter''' )で済む様にすると便利です。名前の残りの部分で、そのファイルの目的が分かるようにします。
ちょっとややこしいですが、別のコマンドを使い、Pythonが読める形式のファイル '''ui_quitter.py''' を作成しました。ファイルの命名規則は、名前を1つ覚えるだけ( '''quitter''' )で済む様にすると便利です。名前の残りの部分で、そのファイルの目的が分かるようにします。
Line 19: Line 29:
注:setuptoolsがインストールされていないのに pyside-uic を実行すると、次のエラーが発生します。
注:setuptoolsがインストールされていないのに pyside-uic を実行すると、次のエラーが発生します。


setuptoolsはここにあります: http://pypi.python.org/pypi/setuptools ''[pypi.python.org]''
<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
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_()
</pre>


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


Line 34: Line 70:


'''MainWindow''' の ''init'' メソッドで、その親に '''None''' を指定していることに気がついたでしょうか。これは '''MainWindow''' が、このプログラムの本当の '''メインウィンドウ''' であることをPySideに伝える指示のようなものです。
'''MainWindow''' の ''init'' メソッドで、その親に '''None''' を指定していることに気がついたでしょうか。これは '''MainWindow''' が、このプログラムの本当の '''メインウィンドウ''' であることをPySideに伝える指示のようなものです。
[[PySide Newbie Tutorials|Return to PySideSimplicissimus]]
===Categories:===
* [[:Category:LanguageBindings|LanguageBindings]]
** [[:Category:LanguageBindings::PySide|PySide]]
* [[:Category:LanguageBindings::PySide::Newbie-Tutorials|Newbie Tutorials]]
* [[:Category:LanguageBindings::PySide-Japanese|PySide Japanese]]

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に伝える指示のようなものです。