app.joypad_main_gui module

K.NAKADA, kengo.nakada@gmail.com, kengo.nakada@mat.shimane-u.ac.jp

class MainWindow(*args, **kwargs)[ソース]

ベースクラス: QMainWindow

JoyPad + COBOTTA 制御 GUI のメインウィンドウクラス。

本クラスはアプリケーション全体の初期化と、 各制御コンポーネントの生成・接続を統括する。

Responsibilities:
  • Config の読み込みと保持

  • Qt UI の生成とセットアップ

  • JoyPadClient / InputGrpcClient の生成

  • Arm / JoyPad / BCAP 各制御クラスの生成と接続

  • GUI リソース(画像等)の初期化

  • アプリ終了時の後始末処理

メモ

  • 本クラスが GUI 全体のライフサイクルを管理する

  • 例外発生時はダイアログ表示を行う

パラメータ:

parent (Any)

_show_error_and_show_dialog(message)[ソース]

致命的エラー発生時にダイアログを表示する。

パラメータ:

message (str) -- ダイアログに表示するエラーメッセージ本文。

戻り値の型:

None

Behavior:
  • QMessageBox を用いてモーダルなエラーダイアログを表示する

  • ユーザ操作(OK ボタン)待ちとなる

closeEvent(event)[ソース]

メインウィンドウが閉じられる際の後処理。

Behavior:
  • エラー監視タイマーを停止

  • JoyPad 関連のクローズ処理を実行

  • 親クラスの closeEvent を呼び出す

メモ

  • 例外は捕捉され、UI クローズを妨げない

戻り値の型:

None

config_init(config_name=None)[ソース]

Config ファイルを読み込み、内部に保持する。

パラメータ:

config_name (str, optional) -- 使用する設定ファイル名。 None の場合はデフォルト設定名を使用する。

戻り値の型:

None

Behavior:
  • 本ファイルの存在ディレクトリを基準に config ディレクトリを参照

  • Config オブジェクトを生成し内部変数に保持

メモ

  • Config が正しく生成されない場合、以降の処理は継続不可

excepthook(exc_type, exc_value, exc_traceback)[ソース]
戻り値の型:

None

main()[ソース]
戻り値の型:

None

resource_path(relative)[ソース]

リソースファイルの絶対パスを解決する補助関数。

PyInstaller によるバンドル実行時と、通常の Python 実行時の 両方に対応したパス解決を行う。

パラメータ:

relative (str) -- 実行ファイル基準での相対パス。

戻り値:

実際にファイルへアクセス可能な絶対パス文字列。

戻り値の型:

str

メモ

  • PyInstaller 実行時は sys._MEIPASS を基準ディレクトリとする

  • 通常実行時は本ファイルの存在するディレクトリを基準とする