2020/03/05(木) [n年前の日記]
#3 [python] PySide2を試用
せっかく Python を更新したことだし、PySide も更新、しようと思ったら今時は PySide ではなくて PySide2 があるらしいのでそちらをインストールして試用中。環境は Windows10 x64 1909 + Python 3.7.6 64bit + PySide2 5.14.1。
PySide 用のスクリプトを PySide2 で動くように修正しているけれど、import文のあたりを変更すれば、ある程度は動きそうではあるなと…。
QtWidgets 以下に移ったクラスが多いようで。QtWidgets.QLabel とか QWidgets.QPushButton とか。PySide用のスクリプトを動かしてみてエラーが出たら、QtWidgets.xxxx にしてみると動くのかもしれない。
PySide 用のスクリプトを PySide2 で動くように修正しているけれど、import文のあたりを変更すれば、ある程度は動きそうではあるなと…。
# PySide from PySide.QtGui import * from PySide.QtCore import * ↓ # PySide2 from PySide2.QtWidgets import * from PySide2.QtGui import * from PySide2.QtCore import *
QtWidgets 以下に移ったクラスが多いようで。QtWidgets.QLabel とか QWidgets.QPushButton とか。PySide用のスクリプトを動かしてみてエラーが出たら、QtWidgets.xxxx にしてみると動くのかもしれない。
◎ addRoundRect()が無い。 :
角丸矩形を描画する、QPainterPath.addRoundRect() が非推奨になっていた。
_Obsolete Members for QPainterPath | Qt 4.8
以下を参考にして自前で処理を書かないといかんということかな…。
_Painter Paths Example ・ Qt for Python
こんな感じになるのかな…。
_Obsolete Members for QPainterPath | Qt 4.8
以下を参考にして自前で処理を書かないといかんということかな…。
_Painter Paths Example ・ Qt for Python
こんな感じになるのかな…。
def myAddRoundeRect(self, x, y, w, h, xr, yr): """Draw round rect.""" x0, y0 = x, y x1, y1 = x + w, y + h p = QtGui.QPainterPath() p.moveTo(x1, y0 + yr * 0.5) p.arcTo(x1 - xr, y0, xr, yr, 0.0, 90.0) p.lineTo(x0 + xr * 0.5, y) p.arcTo(x0, y0, xr, yr, 90.0, 90.0) p.lineTo(x0, y1 - yr * 0.5) p.arcTo(x0, y1 - yr, xr, yr, 180.0, 90.0) p.lineTo(x1 - xr * 0.5, y1) p.arcTo(x1 - xr, y1 - yr, xr, yr, 270.0, 90.0) p.closeSubpath() return p
◎ スタイルがごっそり削除されていた。 :
Motif, CDE, Cleanlooks, Plastique のスタイルが削除されていた…。
_Cleaning up styles in Qt5 and adding Fusion
代わり(?)に、Fusion というスタイルが追加されたようで。
_Cleaning up styles in Qt5 and adding Fusion
代わり(?)に、Fusion というスタイルが追加されたようで。
[ ツッコむ ]
以上です。