[英]Forced RtL in PySide2 / PyQt5
我有一個帶有未知文本的 QLabel,無論是哪種語言,它都必須是從右到左的。 所以我寫了這段代碼:
def add_label(self):
text = self.text_input.text() # self.text_input is a QLineEdit
widget = QLabel(text)
widget.setAlignment(Qt.AlignRight)
widget.setStyleSheet("color: #000000")
self.layout.addWidget(widget) # self.layout is a QVBoxLayout
# I can't setAlignment for self.layout because there is some other QLabels in there that have a LtR alignment.
這里的問題是當我在self.text_input
中寫一個波斯語文本並運行add_label
function(通過按下一個按鈕)它會自動將 alignment 更改為 RtL 當我調用widget.setAlignment(Qt.AlignRight)
它會改變回到 LtR。 但無論是哪種語言,我都希望它是 RtL。
如何解決這個問題?
解決方案是將 alignment 標志與Qt.AlignAbsolute
結合使用,這樣無論布局方向如何,文本都將始終向右對齊。
widget.setAlignment(Qt.AlignRight | Qt.AlignAbsolute)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.