【问题标题】:How to define alignment in stylesheets in PySide6?如何在 PySide6 的样式表中定义对齐方式?
【发布时间】:2021-11-23 10:24:38
【问题描述】:

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()

【问题讨论】:

    标签: python qtstylesheets pyside6


    【解决方案1】:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多