PySideTutorials Clickable button Japanese: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Change category "LanguageBindings::PySide Japanese" -> "PySide")
No edit summary
 
Line 12: Line 12:
まず必要なQtのクラスとPythonのsysクラスのインポートからはじめましょう。
まず必要なQtのクラスとPythonのsysクラスのインポートからはじめましょう。


<code>
<pre>
import sys
import sys
from PySide.QtCore import *
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtGui import *
</code>
</pre>


次にコンソールに "Hello World"と出力するpythonの関数を作成しましょう。
次にコンソールに "Hello World"と出力するpythonの関数を作成しましょう。


<code>
<pre>
# 挨拶をします
# 挨拶をします
def sayHello():
def sayHello():
  print "Hello World!"
  print "Hello World!"
</code>
</pre>


ここで[[Hello-World-in-PySide-Japanese|はじめてのPySideアプリケーション]]で述べたように、PySideコードを実行するQApplicationを作成します。
ここで[[Hello-World-in-PySide-Japanese|はじめてのPySideアプリケーション]]で述べたように、PySideコードを実行するQApplicationを作成します。


<code>
<pre>
# Qt Applicationを作ります
# Qt Applicationを作ります
app = QApplication(sys.argv)
app = QApplication(sys.argv)
</code>
</pre>


クリッカブルボタン、QPushButtonを作成しましょう。QPushButtonのコンストラクタにPythonの文字列を渡して、ボタンにラベルを付けます。
クリッカブルボタン、QPushButtonを作成しましょう。QPushButtonのコンストラクタにPythonの文字列を渡して、ボタンにラベルを付けます。


<code>
<pre>
# ボタンを作ります
# ボタンを作ります
button = QPushButton("Click me")
button = QPushButton("Click me")
</code>
</pre>


ボタンを表示する前に、先ほど定義した '''sayHello()''' 関数とボタンとを接続します。今のところ接続方法には新旧の2つのスタイルがありますが、ここではよりPython的である新スタイルを使っていきます。両方のスタイルの詳細は[[Signals_and_Slots_in_PySide_Japanese|PySideのシグナルとスロット]]でご確認ください。QPushButtonは '''clicked''' と呼ばれる事前定義シグナルをもっており、ボタンが押されるたびにこのシグナルが送出されます。 ではこのシグナルと '''sayHello()''' 関数を接続しましょう。
ボタンを表示する前に、先ほど定義した '''sayHello()''' 関数とボタンとを接続します。今のところ接続方法には新旧の2つのスタイルがありますが、ここではよりPython的である新スタイルを使っていきます。両方のスタイルの詳細は[[Signals_and_Slots_in_PySide_Japanese|PySideのシグナルとスロット]]でご確認ください。QPushButtonは '''clicked''' と呼ばれる事前定義シグナルをもっており、ボタンが押されるたびにこのシグナルが送出されます。 ではこのシグナルと '''sayHello()''' 関数を接続しましょう。


<code>
<pre>
# ボタンと関数を接続します
# ボタンと関数を接続します
button.clicked.connect(sayHello)
button.clicked.connect(sayHello)
</code>
</pre>


最後にボタンを表示してQtのメインループを開始します。
最後にボタンを表示してQtのメインループを開始します。


<code>
<pre>
# ボタンを表示します
# ボタンを表示します
button.show()
button.show()
# Qtのループを開始します
# Qtのループを開始します
app.exec_()
app.exec_()
</code>
</pre>


== コード全体 ==
== コード全体 ==


<code>
<pre>
#!/usr/bin/python
#!/usr/bin/python
# -'''- coding: utf-8 -'''-
# -'''- coding: utf-8 -'''-
Line 77: Line 77:
# Qtのループを開始します
# Qtのループを開始します
app.exec_()
app.exec_()
</code>
</pre>

Latest revision as of 05:13, 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

簡単なクリッカブルボタンのチュートリアル

このチュートリアルではPySideの シグナルとスロット の扱い方を紹介します。このQtの機能は、基本的にはグラフィカルウィジェット同士やグラフィカルウィジェットと独自のPythonコードの間の通信を可能にします。ここで紹介するアプリケーションでは、押すたびにPythonコンソールへ Hello World と表示するクリッカブルボタンを作成していきます。

まず必要なQtのクラスとPythonのsysクラスのインポートからはじめましょう。

import sys
from PySide.QtCore import *
from PySide.QtGui import *

次にコンソールに "Hello World"と出力するpythonの関数を作成しましょう。

# 挨拶をします
def sayHello():
 print "Hello World!"

ここではじめてのPySideアプリケーションで述べたように、PySideコードを実行するQApplicationを作成します。

# Qt Applicationを作ります
app = QApplication(sys.argv)

クリッカブルボタン、QPushButtonを作成しましょう。QPushButtonのコンストラクタにPythonの文字列を渡して、ボタンにラベルを付けます。

# ボタンを作ります
button = QPushButton("Click me")

ボタンを表示する前に、先ほど定義した sayHello() 関数とボタンとを接続します。今のところ接続方法には新旧の2つのスタイルがありますが、ここではよりPython的である新スタイルを使っていきます。両方のスタイルの詳細はPySideのシグナルとスロットでご確認ください。QPushButtonは clicked と呼ばれる事前定義シグナルをもっており、ボタンが押されるたびにこのシグナルが送出されます。 ではこのシグナルと sayHello() 関数を接続しましょう。

# ボタンと関数を接続します
button.clicked.connect(sayHello)

最後にボタンを表示してQtのメインループを開始します。

# ボタンを表示します
button.show()
# Qtのループを開始します
app.exec_()

コード全体

#!/usr/bin/python
# -'''- coding: utf-8 -'''-

import sys
from PySide.QtCore import *
from PySide.QtGui import *

def sayHello():
 print "Hello World!"

# Qt Applicationを作ります
app = QApplication(sys.argv)
# ボタンを作成して関数と接続したのち、表示します
button = QPushButton("Click me")
button.clicked.connect(sayHello)
button.show()
# Qtのループを開始します
app.exec_()