Skip to content

Instantly share code, notes, and snippets.

View 44hero's full-sized avatar

44hero 44hero

View GitHub Profile
@44hero
44hero / CustomScriptEditor2.py
Last active May 10, 2024 10:38
使用したいそれぞれのファイルで、 CustomScriptEditor2 の新しいインスタンスを作成する代わりに、 これらのインスタンスを一度だけ、ここで作成し、 これを、他のすべてのファイルの場所で再利用することをお勧めします。 これは一つの方法であり、 当ファイルのように、別の Pythonファイル(例えば singleton.py )を作成し、 その中で、CustomScript
# -*- coding: utf-8 -*-
u"""
CustomScriptEditor2.py
:Author:
oki yoshihiro
okiyoshihiro.job@gmail.com
:Version: -1.0-
:Date: 2024/05/09
# 標準ライブラリ #################################################################
from functools import partial
from pprint import pprint
from typing import Tuple, List
# サードパーティライブラリ #########################################################
# from maya import OpenMayaUI, cmds
from PySide2.QtWidgets import (QApplication, QComboBox, QGridLayout,
QMainWindow, QWidget, QHBoxLayout, QVBoxLayout,
QPushButton, QAction, QFrame, QLabel,
@44hero
44hero / new my sample
Last active March 26, 2024 03:51
``` - Widget 作ったら、Layout が無ければ見れない!! - 途中ならば、Layout を Layout することは可能! - Widget は親、Layout は子 - WidgetとLayoutの親子関係は、 - 通常、Widgetが親であり、その中にLayoutや他のWidgetが配置される形になる - 最終的には、Layout するためには、Widget が必要 - Layout の無い、Widget も window に配置はできるが、まずもって、
from PySide2.QtWidgets import (QWidget, QVBoxLayout, QPushButton,
QMainWindow, QApplication
)
from PySide2.QtCore import Qt
from maya import OpenMayaUI
from shiboken2 import wrapInstance
def maya_main_window():
main_window_ptr = OpenMayaUI.MQtUtil.mainWindow()
return wrapInstance(int(main_window_ptr), QMainWindow)
@44hero
44hero / sample
Last active March 24, 2024 06:07
from .. import YO_jointDrawStyle_change from .. import YO_jointRadiusSlider としています。 現状は、存在しなければ、エラーでプログラムが止まってしまいます。 存在しないくても、エラーでプログラムが止まらずに、そのまま進んでもらうためには、 どういった記述を追記する必要がありますか? ChatGPT Pythonでは、モジュールやパッケージが存在しない場合でもエラーが発生しないようにするために、try-exc
from .. import YO_jointDrawStyle_change
from .. import YO_jointRadiusSlider
としています。
現状は、存在しなければ、エラーでプログラムが止まってしまいます。
存在しないくても、エラーでプログラムが止まらずに、そのまま進んでもらうためには、
どういった記述を追記する必要がありますか?
ChatGPT
Pythonでは、モジュールやパッケージが存在しない場合でもエラーが発生しないようにするために、try-except文を使用することができます。具体的には、tryブロック内でインポート文を実行し、ModuleNotFoundErrorなどの例外が発生した場合にexceptブロックで処理を行います。
@44hero
44hero / about signal
Last active March 21, 2024 04:17
プロパティ。。? 引数を持たない関数をシグナルのスロットとして使用することも可能
プロパティ。。?
引数を持たない関数をシグナルのスロットとして使用することも可能
# PySide2.QtWidgets.QTabWidget 組み込み関数 を使用した
# tab クリックで、コンテナ のある フレーム の高さを再計算するシグナル の埋め込み
tab_wid_.tabBarClicked.connect(self.tabClicked)
です。
現状、
def tabClicked(self, index):
print(f'Tab clicked: {index}\n')
@44hero
44hero / test
Last active February 29, 2024 08:15
# -PySide2- これまでの window重複の回避 のやり方ではだめかもしれない について --- コードに close があると、window重複の回避が上手く働かないことが判明した。 PySide2 の、closeとは、closeEvent メソッドを含む、組み込み関数です。 そもそも、closeEvent メソッド は、基は組み込み関数であり、 イベントハンドラー です。 閉じる要求を受信したときにトップレベル ウィンドウに対してのみ呼び出されます。 これが悪さする
_
@44hero
44hero / addLayout
Last active March 21, 2024 02:56
# -PySide2- 未だ混乱をきたす、addLayout, setLayout, addWidget について --- * **addLayout** <Layout に Layout を**追加** の意> `xxxLay.addLayout(zzzLay)` --- * **setLayout** <Widget に Layout を**作成しセット** の意> ``` zzzLay = QxxxLayout() xxxWid.setLayout(
# 親layout
# ├ 親layout.addLayout(子layout)
# └ 親layout.addLayout(子layout)
# のパターン
# QHBoxLayoutを2つ用意しています。
# これらを、QVBoxLayout1つでまとめたいと思います。
# 一番理解しやすく視認性のある、簡単な記述をください。
# 但し、
# def createUI(self):
PySide2_sample_main.py
@44hero
44hero / untitled
Last active February 22, 2023 10:01
## 強制的にパスを通して、その直下にあるフォルダ内のモジュールを見るためには 強制的にパスを通して、その直下にあるフォルダ内のモジュールを見るためには、 `__init__.py` が必要である つまり、**そのフォルダはパッケージですよ!!と認識させる必要がある**
path = r'C:\Users\oki44\Documents\maya\2018\myTool\selfMade_python'
if path not in sys.path:
print(u'now, add a path.....{}'.format(path))
sys.path.append(path)
else:
print(u'already, added a path.....{}'.format(path))
# 強制的にパスを通して、その直下にあるフォルダ内のモジュールを見るためには、
# __init__.py (つまり、そのフォルダはパッケージですよ!!と認識させる必要がある)
# が必要である