PyQt5设置一个QLabel x轴自动居中window

PyQt5 set a QLabel x axis automatically center of the window

如何将 QLabel 的 x 轴设置为 window 的确切中心?我有这个例子

from PyQt5.QtWidgets import QMainWindow,QApplication,QLabel
from PyQt5 import QtCore
import sys

class cssden(QMainWindow):
    def __init__(self):
        super().__init__()

        self.mwidget = QMainWindow(self)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setFixedSize(700,400)

        self.label = QLabel(self)
        self.label.setText("Center of the window")
        self.label.setStyleSheet("color:green;"
                                       "font: bold 20pt 'Arial'")
        self.label.setGeometry(150,200,300,100)
        self.show()

app = QApplication(sys.argv)
app.setStyleSheet("QMainWindow{background-color: rgb(30,30,30);border: 2px solid rgb(20,20,20)}")
ex = cssden()
sys.exit(app.exec_())

self.label.setGeometry 上做什么才能使标签始终位于 window 的中心?有没有像setCenter()这样的方法?

使用垂直布局。标签将展开以填充可用的 space,文本将默认居中对齐:

from PyQt5.QtWidgets import QWidget, QVBoxLayout

class cssden(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setFixedSize(700,400)

        self.label = QLabel(self)
        self.label.setText("Center of the window")
        self.label.setStyleSheet("color:green;"
                                       "font: bold 20pt 'Arial'")

        self.label.setAlignment(QtCore.Qt.AlignCenter)        

        widget = QWidget(self)
        layout = QVBoxLayout(widget)
        layout.addWidget(self.label)

        self.setCentralWidget(widget)

        self.show()