QFrameをPyQt5環境からPyQt6環境に移行する際のAttributeError: type object ‘QFrame’ has no attribute ‘Panel’の対処方法を説明する。
結論
PyQt5:setFrameStyle(QFrame.HLine)
PyQt6:setFrameStyle(QFrame.Shape.HLine)
コード例
下記アプリを例に説明する。
PyQt5のコード
#!/usr/bin/env python3
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QFrame)
import sys
class GuiWindow(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.線を引く()
self.文字()
self.show()
def 線を引く(self):
self.線 = QFrame(self)
self.線.setFrameStyle(QFrame.HLine) # ?
self.線.setGeometry(30, 100, 200, 2) # 開始位置x, 開始位置y, x幅, y高さ
def 文字(self):
self.label1 = QLabel('女風呂', self)
self.label1.setGeometry(110,40,100,30)
self.label2 = QLabel('男風呂', self)
self.label2.setGeometry(110,140,100,30)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = GuiWindow()
sys.exit(app.exec_())
PyQt6のコード
#!/usr/bin/env python3
from PyQt6.QtWidgets import (QApplication, QWidget, QLabel, QFrame)
import sys
class GuiWindow(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.線を引く()
self.文字()
self.show()
def 線を引く(self):
self.線 = QFrame(self)
self.線.setFrameStyle(QFrame.Shape.HLine) # ?
self.線.setGeometry(30, 100, 200, 2) # 開始位置x, 開始位置y, x幅, y高さ
def 文字(self):
self.label1 = QLabel('女風呂', self)
self.label1.setGeometry(110,40,100,30)
self.label2 = QLabel('男風呂', self)
self.label2.setGeometry(110,140,100,30)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = GuiWindow()
sys.exit(app.exec())
まとめ
‘QFrame’ has no attribute ‘HLine’の対処方法を説明した。
コメント