Интервал между каждым сообщением совпадает с высотой добавляемой метки (по крайней мере, я думаю, что это выглядит так). Я хочу, чтобы все сообщения были на высоте 20 м друг от друга, что соответствует одной строке -высок.
Как я могу это сделать?
Код:
def randomWidgetSetup(self):
# Chat. ScrollArea
self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
self.scrollArea.setGeometry(QtCore.QRect(0, 30, 541, 531))
self.scrollArea.setFrameShadow(QtWidgets.QFrame.Plain)
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
# Body that holds the widgets.
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
# Box that holds the widgets.
self.layout = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
self.scrollAreaWidgetContents.setLayout(self.layout)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.layout.addStretch(-1)
def addlabel(self):
def add(text, lines):
print(lines)
label = QtWidgets.QLabel(text)
label.setStyleSheet("font: 11pt;")
label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
label.setFixedSize(540, 20*lines)
self.lineEdit.setText("")
self.layout.addWidget(label)
text = self.lineEdit.text()
if not text:
return
else:
if len(text) > self.lineLength:
wordsList = text.split()
lines = math.ceil(len(text)/self.lineLength)
lines += math.ceil(lines*2/self.lineLength)
lineList = [''] * lines
index = 0
lineList[0] += wordsList[0]
print(lines)
for word in wordsList[1:]:
if len(lineList[index]) + len(word) + 1 <= self.lineLength:
lineList[index] += " " + word
else:
index += 1
lineList[index] += "\n" + word
print(lineList)
message = ""
message = message.join(lineList)
add(message, lines)
else:
add(text, 1)
Изображение вывода: