簡體   English   中英

PySide2 中的強制 RtL / PyQt5

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM