Skip to content

Instantly share code, notes, and snippets.

@44hero
Last active March 21, 2024 04:17
Show Gist options
  • Save 44hero/d3957697b52940b78406be1c08145f8a to your computer and use it in GitHub Desktop.
Save 44hero/d3957697b52940b78406be1c08145f8a to your computer and use it in GitHub Desktop.
プロパティ。。? 引数を持たない関数をシグナルのスロットとして使用することも可能
プロパティ。。?
引数を持たない関数をシグナルのスロットとして使用することも可能
# PySide2.QtWidgets.QTabWidget 組み込み関数 を使用した
# tab クリックで、コンテナ のある フレーム の高さを再計算するシグナル の埋め込み
tab_wid_.tabBarClicked.connect(self.tabClicked)
です。
現状、
def tabClicked(self, index):
print(f'Tab clicked: {index}\n')
ですが、(self.tabClicked)に引数indexが無くても構いませんか?
現状、def tabClicked(self, index):...を実行しても、
print(f'Tab clicked: {index}\n')
は上手く出力されます。
tabBarClicked
シグナルのスロットとして設定されています。
このシグナルはタブバーでタブがクリックされたときに発生し、
クリックされたタブのインデックスがそのシグナルによって提供されます。
引数を受け取らなくても、
PySide2がシグナルによって提供される情報(ここではクリックされたタブのインデックス)
を適切に処理することができます。
そのため、引数 index がなくても問題ありません。
ですので、
def tabClicked(self, index): を def tabClicked(self): に変更しても問題ありません。
ただし、関数の定義に引数を含めることで、
その関数がどのような情報を受け取るかを明示的に示すことができるため、コードの可読性の観点からは
引数を含めることが好ましい場合もあります。
stateChanged
Pyside2において、tabBarClickedやstateChangedなどのシグナルは、特定のイベントが発生した際にそれに関連する情報を提供するものです。これらのシグナルを適切に処理することで、GUIアプリケーションの動作を制御することができます。
以下は、Pyside2における代表的なシグナルの一部です:
- `clicked`
- `pressed`
- `released`
- `doubleClicked`
- `editingFinished`
- `valueChanged`
- `currentIndexChanged`
- `textChanged`
- `itemClicked`
- `itemDoubleClicked`
- `itemChanged`
- `itemSelectionChanged`
- `itemPressed`
- `itemEntered`
- `tabBarClicked`
- `stateChanged`
他にも多数のシグナルが存在します。
これらのシグナルは、各種ウィジェット(ボタン、テキストボックス、コンボボックス、タブバーなど)で使用されます。それぞれのシグナルは、対応するウィジェットの特定のイベントが発生した際に発火します。
これらのシグナルは、UIの動的な振る舞いを制御する際に非常に重要です。例えば、ボタンがクリックされたときに特定の処理を実行する、コンボボックスの選択が変更されたときに他のウィジェットの表示を変更する、タブが切り替わったときに対応するコンテンツを表示するなど、さまざまな場面で活用されます。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment