2020/03/09(月) [n年前の日記]
#1 [python] PySide2をまだまだ勉強中
PySideを使っていたスクリプトの大半を、PySide2用に書き直すことはできたけど。OpenGL関係だけがどうにも…。
PySide2 + OpenGL を使ったサンプルスクリプトを目にして参考になったし、手元でも動いたけれど。
_PySide2 demo | Mark Fink
_PySide2 & OpenGL sample
しかし、件のスクリプト内で使われている QGLWidget って、「これから書くスクリプトでは使わないでくれ」「QOpenGLWidget か QOpenGL を使うようにしてくれ」と言及されちゃっているわけで。
_QGLWidget - Qt for Python
_QOpenGLWidget - Qt for Python
しかし、載っているサンプルソースがC言語のまま…。どこかに PySide2用のサンプルは無いのかな…。
PySide2 + OpenGL を使ったサンプルスクリプトを目にして参考になったし、手元でも動いたけれど。
_PySide2 demo | Mark Fink
_PySide2 & OpenGL sample
しかし、件のスクリプト内で使われている QGLWidget って、「これから書くスクリプトでは使わないでくれ」「QOpenGLWidget か QOpenGL を使うようにしてくれ」と言及されちゃっているわけで。
_QGLWidget - Qt for Python
_QOpenGLWidget - Qt for Python
しかし、載っているサンプルソースがC言語のまま…。どこかに PySide2用のサンプルは無いのかな…。
◎ 「Method could be a function」ってなんぞや。 :
Pythonスクリプトの書き方がおかしくないかを調べてくれる pylint というツールがあるので、pylint hoge.py と打ってそのへん調べつつ書いてるのだけど。「Method could be a function」てな注意(?)が表示されて悩んだり。ソレ、どういう意味なの。
_Method could be a function - Python Anti-Patterns documentation
_Pythonで classmethod、staticmethod を使う - Qiita
クラスの中に書いてある関数に self を渡してるのに self が使われてなかったりする場合は怒られるらしい。つまり、「この関数ってインスタンスが無くても動いてしまうから、こういうのはクラスメソッドとして扱うのが妥当じゃないですかねえ」みたいなことを言われてるようで。
そんな場合は、「def hoge():」の一行前に、「@classmethod」とか「@staticmethod」と書いて「これはクラスメソッドの類じゃよ」と指定しておくといいらしい。かつ、self は cls に書き換え、みたいな。
_Method could be a function - Python Anti-Patterns documentation
_Pythonで classmethod、staticmethod を使う - Qiita
クラスの中に書いてある関数に self を渡してるのに self が使われてなかったりする場合は怒られるらしい。つまり、「この関数ってインスタンスが無くても動いてしまうから、こういうのはクラスメソッドとして扱うのが妥当じゃないですかねえ」みたいなことを言われてるようで。
そんな場合は、「def hoge():」の一行前に、「@classmethod」とか「@staticmethod」と書いて「これはクラスメソッドの類じゃよ」と指定しておくといいらしい。かつ、self は cls に書き換え、みたいな。
[ ツッコむ ]
以上です。