如何在 PySide6 的样式表中定义对齐方式?
How to define alignment in stylesheets in PySide6?
在 PySide2
中我们可以使用 "qproperty-alignment: AlignRight;"
,但这在 PySide6
中不再有效。由于 PySide6
有变化并且不再支持快捷方式我已经尝试过:
Alignment.AlignRight
Qt.Alignment.AlignRight
AlignmentFlag.AlignRight
Qt.AlignmentFlag.AlignRight
但似乎没有任何效果。
这是最小的可重现示例:
from PySide6 import QtWidgets
app = QtWidgets.QApplication([])
window = QtWidgets.QLabel('Window from label')
window.setStyleSheet('qproperty-alignment: AlignRight;')
window.setFixedWidth(1000)
window.show()
app.exec()
似乎 Qt6 不再解释文本“AlignRight”但需要整数值,例如 Qt::AlignRight 是 0x0002 所以可能的解决方案是将标志转换为整数:
from PySide6 import QtCore, QtWidgets
app = QtWidgets.QApplication([])
window = QtWidgets.QLabel("Window from label")
window.setStyleSheet(f"qproperty-alignment: {int(QtCore.Qt.AlignRight)};")
window.setFixedWidth(1000)
window.ensurePolished()
assert window.alignment() & QtCore.Qt.AlignRight
window.show()
app.exec()
在 PySide2
中我们可以使用 "qproperty-alignment: AlignRight;"
,但这在 PySide6
中不再有效。由于 PySide6
有变化并且不再支持快捷方式我已经尝试过:
Alignment.AlignRight
Qt.Alignment.AlignRight
AlignmentFlag.AlignRight
Qt.AlignmentFlag.AlignRight
但似乎没有任何效果。
这是最小的可重现示例:
from PySide6 import QtWidgets
app = QtWidgets.QApplication([])
window = QtWidgets.QLabel('Window from label')
window.setStyleSheet('qproperty-alignment: AlignRight;')
window.setFixedWidth(1000)
window.show()
app.exec()
似乎 Qt6 不再解释文本“AlignRight”但需要整数值,例如 Qt::AlignRight 是 0x0002 所以可能的解决方案是将标志转换为整数:
from PySide6 import QtCore, QtWidgets
app = QtWidgets.QApplication([])
window = QtWidgets.QLabel("Window from label")
window.setStyleSheet(f"qproperty-alignment: {int(QtCore.Qt.AlignRight)};")
window.setFixedWidth(1000)
window.ensurePolished()
assert window.alignment() & QtCore.Qt.AlignRight
window.show()
app.exec()