cymel.qt.widgets

Maya に依存しない Qt ウィジェットヘルパー。

Functions:

dumpWidgetHierarchy([base, indent])

ウィジェットの objectName 階層を出力する。

getDpiScaling([widget])

Qt の論理 DPI スケールを取得する。

getFirstTopLevelWindow()

表示中の最初のトップレベル QWidget を取得する。

getWidgetByPathName(name[, base, separator, ...])

objectName のパスからウィジェットまたはレイアウトを検索する。

getWidgetFullPathName(widget[, separator])

ウィジェットの objectName パスを取得する。

showAppWindow(proc[, deleteOnClose, ...])

既存または新規の QApplication 上でウィンドウを生成して表示する。

showWindow(wd[, deleteOnClose])

ウィジェットをウィンドウとして表示する。

unscaleTextFont(textCtl[, height, pixel, ...])

固定サイズテキスト用の 逆スケール値と QFont or None を得る。

Functions Details:

cymel.qt.widgets.dumpWidgetHierarchy(base=None, indent='')

ウィジェットの objectName 階層を出力する。

パラメータ:
  • widget (QWidget) -- 基点のウィジェット。 省略時はトップレベルから全てがダンプされる。

  • indent (str) -- 基点のレベルのインデントスペース。

cymel.qt.widgets.getDpiScaling(widget=None)

Qt の論理 DPI スケールを取得する。

パラメータ:

widget -- ただし、Maya UI の場合は無視され固定値となるが、 Maya ではなく Qt5 以上なら、ウィジェットを指定すると、 それが表示されているスクリーンのスケーリング値が得られる。

戻り値の型:

float

cymel.qt.widgets.getFirstTopLevelWindow()

表示中の最初のトップレベル QWidget を取得する。

戻り値の型:

QWidget

cymel.qt.widgets.getWidgetByPathName(name, base=None, separator='|', includesLayout=True)

objectName のパスからウィジェットまたはレイアウトを検索する。

指定パスの間に未知のウィジェットが存在する場合も許容され、 くまなく探索される。

パラメータ:
  • name (str) -- 基点から下のパス名(基点を含まない)。

  • base -- 基点のウィジェット。 省略時はパスの先頭の名前がトップレベルから探される。 それでも見つからない場合は getFirstTopLevelWindow で取得されるアプリケーションのメインウィンドウとなる。

  • separator (str) -- パスの区切り文字。

  • includesLayout (bool) -- レイアウトマネージャもノードとしてカウントするかどうか。

戻り値の型:

QWidget or QLayout

cymel.qt.widgets.getWidgetFullPathName(widget, separator='|')

ウィジェットの objectName パスを取得する。

パラメータ:
  • widget (QWidget) -- ウィジェット。

  • separator (str) -- パスの区切り文字。

戻り値の型:

str

cymel.qt.widgets.showAppWindow(proc, deleteOnClose=True, setupRoundingOnNewApp=False, traceSettings=False)

既存または新規の QApplication 上でウィンドウを生成して表示する。

QApplication が未初期化なら初期化され、メインループに入りリターンされない。 組み込み環境下ならメインウィンドウ(やトップレベルウィンドウ)の子となり、 リターンされる。

パラメータ:
  • proc (callable) -- ウィジェット型や関数など、 ウィジェットを生成するための実行可能オブジェクト。

  • deleteOnClose (bool) -- 閉じた時に削除されるようにするかどうか。 WA_DeleteOnClose 属性が上書きセットされる。

  • setupRoundingOnNewApp (bool) -- 新規に開くアプリケーションで、且つ Qt6 以降で devicePixelRatio が非整数のスクリーンが1つ以上在る場合に、 HighDpiScaleFactorRoundingPolicy を RoundPreferFloor に設定する。 QGraphicsView でアンチエイリアスを使用した場合のアーティファクトを 回避するためである。 ちなみに、Mayaでは QT_ENABLE_HIGHDPI_SCALING=0 が設定されているため devicePixelRatio はすべて 1.0 となり問題は発生しない。

  • traceSettings (bool) -- Qtのバージョンやアプリケーションのセッティング等をprint出力する。

戻り値の型:

QWidget

cymel.qt.widgets.showWindow(wd, deleteOnClose=True)

ウィジェットをウィンドウとして表示する。

アプリケーションのメインウィンドウや 既に表示されているトップレベルウィンドウ(最初の一つ) が在れば、その子になる。

パラメータ:
  • wd (QWidget) -- ウィジェット。

  • deleteOnClose (bool) -- 閉じた時に削除されるようにするかどうか。 WA_DeleteOnClose 属性が上書きセットされる。

cymel.qt.widgets.unscaleTextFont(textCtl, height=None, pixel=11, prepare=None)

固定サイズテキスト用の 逆スケール値と QFont or None を得る。

パラメータ:
  • textCtl -- サイズの判定に用いるテキスト系コントロール。 boundingRect, font, setFont メソッドを備えていること。

  • height (float) -- フォントがポイントサイズで指定された場合の基準となる高さを指定する。 このサイズに合わせるためのスケール値が計算される。 デフォルトの None は、環境に応じて変わるデフォルト値を意味する。

  • pixel (int) -- フォントがピクセルサイズで指定された場合の基準となるサイズを指定する。 このサイズに合わせるためのスケール値が計算される。

Paream callable preparecallable prepare:

情報をキャッシュから得られなかった場合に、 ポイントサイズによる高さを調べる前に準備(仮の描画など)が必要な場合、 その呼出可能オブジェクトを指定する。

戻り値の型:

float, QFont or None