【PyQt6】QLabelに枠線をつける

f:id:touch-sp:20220324124837p:plain

各種設定は次のPythonスクリプトの通りです。
違いが分かりやすいようにラインの太さを太めに設定しています。
影の設定をしていない2番目と5番目は同じようになるようです。

from PyQt6.QtWidgets import QWidget, QApplication, QLabel, QVBoxLayout, QFrame
from constructGUI import construct

class Window(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self):
        self.setWindowTitle("sample")

        self.label_1 = construct(QLabel(), 'settings.yaml', 'label_1')
        self.label_2 = construct(QLabel(), 'settings.yaml', 'label_1')
        self.label_3 = construct(QLabel(), 'settings.yaml', 'label_1')
        self.label_4 = construct(QLabel(), 'settings.yaml', 'label_1')
        self.label_5 = construct(QLabel(), 'settings.yaml', 'label_1')
        self.label_6 = construct(QLabel(), 'settings.yaml', 'label_1')
        self.label_7 = construct(QLabel(), 'settings.yaml', 'label_1')

        self.label_2.setLineWidth(5)
        self.label_2.setFrameStyle(QFrame.Shape.Box.value)

        self.label_3.setLineWidth(5)
        self.label_3.setFrameStyle(QFrame.Shape.Box.value | QFrame.Shadow.Raised.value)

        self.label_4.setLineWidth(5)
        self.label_4.setFrameStyle(QFrame.Shape.Box.value | QFrame.Shadow.Sunken.value)

        self.label_5.setLineWidth(5)
        self.label_5.setFrameStyle(QFrame.Shape.Panel.value)

        self.label_6.setLineWidth(5)
        self.label_6.setFrameStyle(QFrame.Shape.Panel.value | QFrame.Shadow.Raised.value)

        self.label_7.setLineWidth(5)
        self.label_7.setFrameStyle(QFrame.Shape.Panel.value | QFrame.Shadow.Sunken.value)

        layout = QVBoxLayout()
        layout.addWidget(self.label_1)
        layout.addWidget(self.label_2)
        layout.addWidget(self.label_3)
        layout.addWidget(self.label_4)
        layout.addWidget(self.label_5)
        layout.addWidget(self.label_6)
        layout.addWidget(self.label_7)

        self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication([])
    ex =Window()
    ex.show()
    app.exec()

「constructGUI.py」については以下を参照して下さい。
touch-sp.hatenablog.com
「settings.yaml」の中身はこのようになっています。

label_1:
  type: QLabel
  width: 300
  height: 100
  alignment: center
  fontFamily: times
  fontPoint: 40
  fontBold: True
  text: test