【Python】ボタン(QPushButton)で一番よく使う機能メモ

細かいものもいっぱいあるけど、ボタンで一番使う機能はたぶんこの辺だと思う。

・ボタンをクリックしたときに実行するメソッドを設定する
・ボタンの状態を設定する(押せる状態or押せない状態)

サンプル

動作

・書き込むボタンを押すとテキストボックスに「にゃっほい屋へようこそ!」と表示。
・テキストボックスに文字が入力されるまで、消すボタンは押せない。
・消すボタンが押されたら再び書き込むボタンが押されるまで消すボタンは押せない。

UI

コード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import sys
import os
from PySide import QtGui
from PySide import QtUiTools
 
class UILayoutTest():
    def __init__(self):
 
        aUILoader = QtUiTools.QUiLoader()   # レイアウト用UIファイルを読み込むのに必要なクラスのインスタンス
        self.mUI = aUILoader.load(os.path.dirname(__file__) + "/UITester.ui")   # レイアウト用UIファイルを読み込む
        self.mUI.show()                     # 画面に表示する
 
        self.mUI.writeButton.clicked.connect(self.onWriteButtonClicked)     # 書き込むボタンが押された際に呼び出されるメソッドを設定
        self.mUI.deleteButton.clicked.connect(self.onDeleteButtonClicked)   # 消すボタンが押された際に呼び出されるメソッドを設定
        self.mUI.deleteButton.setDisabled(True) # 消すボタンを押せない状態にする
 
    def onWriteButtonClicked(self):
        """ 書き込むボタンが押されたとき """
        self.mUI.plainTextEdit.setPlainText("にゃっほい屋へようこそ!")     # テキストボックスに文字を表示する
        self.mUI.deleteButton.setDisabled(False)    # deleteボタンを押せる状態にする
 
    def onDeleteButtonClicked(self):
        """ 消すボタンが押されたとき """
        self.mUI.plainTextEdit.clear()          # テキストボックスの中身を空にする
        self.mUI.deleteButton.setDisabled(True) # deleteボタンを押せない状態にする
 
 
app = QtGui.QApplication(sys.argv)
gUILayoutTest = UILayoutTest()
app.exec_()

メモ

15,19,23行目
self.mUI.deleteButton.setDisabled(True)
self.mUI.deleteButton.setDisabled(False)
ボタンの状態を設定する。
引数がTrueなら押せない状態。Falseなら押せる状態になる。
13,14行目
self.mUI.writeButton.clicked.connect(self.onWriteButtonClicked)
self.mUI.deleteButton.clicked.connect(self.onDeleteButtonClicked)
ボタンがクリックされたら実行するメソッドを設定する
17~19行目

writeボタンが押されたときの処理。
テキストボックスに「にゃっほい屋へようこそ!」と表示して、消すボタンを押せる状態にする。

21~23行目

deleteボタンが押されたときの処理。
テキストボックスの内容を消去して、消すボタンを押せない状態にする。

実行結果

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です