2015-10-11 122 views
1

我有一個QWidget叫做sideQTextEdit裏面它的sideLayout佈局。對齊文本底部的QTextEdit

chatView = QTextEdit() 
chatView.setHtml('<p style="margin: 0px; line-height: 28px;">') 
sideLayout.addWidget(tab.chatView, 0, 0, 1, 1) 

下方QTextEdit有一個名爲inputLineQLineEdit,在那裏我寫的文字,並通過.append(inputLine.text())發送到QTextEditReturn

我希望每個新行(<p>元素)出現在底部,並且每個新行都附加在第一行下面。

這是現在的樣子:

Text not aligned to bottom

我試圖用setStylesheet()p { vertical-align: bottom; }
我試過p { position: absolute; bottom: 0px; }
我試過setAlignment()Qt.AlignBottom

如何讓線條像這樣對齊底部?

Desired alignment

回答

3

如果聊天視圖將是隻讀的,你並不真的需要一個文本編輯。只需使用一個QLabel,然後setAligment將如預期:

self.chatView = QtGui.QLabel(self) 
self.chatView..setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignBottom) 

要附加的文字,你可以這樣做:

self.chatView.setText(
    '%s<p>%s</p>' 
    % (self.chatView.text(), self.inputLine.text())) 

(PS:您可能還需要把標籤的QScrollArea)。

+0

哦,真的,我沒有想到這一點。我會明天嘗試並報告回來。我知道'QLabel'支持豐富的文本和HTML。 – VixinG