PyQtGraphで3Dグリッドを表示する

数年ぶりに Windows 上の Python - PyQtGraph を使って 3Dグリッドを表示しようとしたらちょっと手間取ってしまったので備忘録です。

実行環境は「Python 3.12.2 64bit」です。

やりたかったのはたったこれだけの事です ↓ ↓ ↓

パッケージを導入する

雑に、pip installする。全部新しいので大丈夫。

  • pyqtgraph - 0.13.7
  • PySide6 - 6.7.0
  • PyOpenGL - 3.1.7

PyQt はライセンスが GPL なのでプロプライエタリを想定するなら PySide にましょう。

Pythonを実装する

import pyqtgraph as pg
import pyqtgraph.opengl as gl

class WindowSample():
    def __init__(self):
        self.window = {}
        self.app = pg.mkQApp(name="hogehoge")
    
    def showWindow(self):
        # Windowの表示
        self.window = gl.GLViewWidget()
        self.window.show()
        self.window.setWindowTitle("Sample")
        self.window.setCameraPosition(distance=3)
        # グリッドを追加
        grid = gl.GLGridItem()
        grid.scale(0.5, 0.5, 0.5)
        self.window.addItem(grid)

        self.app.exec()

if __name__ == '__main__':
    root = WindowSample()
    root.showWindow()

この実装を書く前に通常のウインドウを出そうとしたらメソッドが変わっていました。

pg.GraphicsWindow()
↓
pg.GraphicsLayoutWidget()

Qt6になって破壊的変更多めでちょっと困ることが度々あるのはよくない感じですね。