Переноса слов для QLabel
Мне нужно чтобы QLabel переносила текст по строкам автоматически.
Я слышал, что можно сделать с помощью команды QLabel::setWordWrap(true), но почему-то у меня не получается.
Помогите пожалуйста.
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QMessageBox
app = QApplication([])
main_win = QWidget()
main_win.setWindowTitle('Хто хоче стати мільйонером?')
main_win.resize(1920,1080)
question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила игры')
app.setStyleSheet("QLabel{font-size: 18pt;}")
rules = QLabel('Игра Кто хочет стать миллионером? - это конкурс викторина, в котором участники должны правильно ответить на ряд вопросов с несколькими вариантами ответов, чтобы перейти на следующий уровень. Всего 15 вопросов, каждый вопрос стоит определенной суммы денег, участники не имеют никаких временных ограничений для предоставления ответа. Участники также получают три вида подсказок, чтобы помочь себе, если они застряли на конкретном вопросе.')
line = QVBoxLayout()
lineH1 = QHBoxLayout()
lineH2 = QHBoxLayout()
lineH1.addWidget(question, alignment = Qt.AlignCenter)
lineH2.addWidget(rules, alignment = Qt.AlignCenter)
main_win.setLayout(line)
line.addLayout(lineH1)
line.addLayout(lineH2)
main_win.show()
app.exec()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
wordWrap : bool
Это свойство содержит политику переноса слов для label's.
Если это свойство истинно, то текст метки переносится там, где это необходимо, в разрывы слов; в противном случае он вообще не заворачивается.
По умолчанию перенос слов отключен.
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, \
QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QMessageBox
app = QApplication([])
app.setStyleSheet("""
QLabel {
font-size: 18pt;
}
#rules {
background-color: #ccffbd;
}
""")
main_win = QWidget()
main_win.setWindowTitle('WindowTitle')
main_win.resize(570, 400)
question = QLabel('<h1 style="color: #C81912;">Правила игры</h1>')
rules = QLabel('''Игра Кто хочет стать миллионером? - \
это конкурс викторина, в котором участники \
должны правильно ответить на ряд вопросов \
с несколькими вариантами ответов, чтобы перейти на следующий уровень. \
Всего 15 вопросов, каждый вопрос стоит определенной суммы денег, \
участники не имеют никаких временных ограничений для предоставления \
ответа. Участники также получают три вида подсказок, чтобы помочь себе, \
если они застряли на конкретном вопросе.''')
rules.setObjectName('rules')
rules.setWordWrap(True) # +++
line = QVBoxLayout()
'''
lineH1 = QHBoxLayout()
lineH2 = QHBoxLayout()
lineH1.addWidget(question, alignment = Qt.AlignCenter)
lineH2.addWidget(rules) #, alignment = Qt.AlignCenter)
'''
main_win.setLayout(line)
line.addWidget(question, alignment = Qt.AlignCenter, stretch=0)
line.addWidget(rules, stretch=1)
main_win.show()
app.exec()
