Форум сайта python.su
2 поля: QPlainTextEdit и QTextEdit. В первое поле мы вводим текст с html-разметкой, а во втором смотрим форматирование. Вопрос возник, как прочитать текст в QPlainTextEdit по абзацам, чтобы потом вывести в QTextEdit? Т.е. мне нужны переносы строк.
# Python 3 # -*- coding: utf-8 -*- import sys from PyQt4 import QtCore, QtGui from PyQt4.QtGui import (QWidget, qApp, QAction, QApplication, QHBoxLayout, QVBoxLayout, QGridLayout, QLabel, QLineEdit, QTextEdit, QPushButton, QComboBox, QCheckBox, QRadioButton, QFrame, QScrollArea, QTabWidget, QSizePolicy, QGroupBox, QFileDialog, QPlainTextEdit) from PyQt4.QtGui import QIcon, QPixmap, QPalette, QTextCursor from PyQt4.QtCore import QSize # ЦВЕТА ПОЛЕЙ sss_vivod = ("background-color: #456173; color: #f2f2f0; font: 14pt 'Courier New'") # ГРАФИКА class Window(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) self.resize(200, 200) # шир / выс окна self.setWindowTitle('Заголовок') # Заголовок # БЛОК РАЗМЕТКИ #grid_os = QGridLayout() vbox = QVBoxLayout() # --- --- self.pole_1 = QTextEdit() # --- self.pole_2 = QPlainTextEdit() # --- --- self.tab = QTabWidget() self.tab.currentChanged.connect(self.on_tab) self.tab.addTab(self.pole_1, 'Читать') self.tab.addTab(self.pole_2, 'Править') self.tab.setCurrentIndex(1) vbox.addWidget(self.tab) # --- self.setLayout(vbox) # ЛОГИКА def on_tab(self): tab_index = self.tab.currentIndex() if tab_index == 0: text = self.pole_2.toPlainText() print(text) self.pole_1.clear() self.pole_1.append('<br>'.join(text)) # КОНЕЦ if __name__ == "__main__": app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
————————————————
ьпаш швпы жывап
<b>gfdngn gfds g d;fdg fg</b> gfd g
kmgkmg df sg gs ggsd g
nj gfd gdfg g do dgdo
Отредактировано Kyrym (Янв. 9, 2018 15:00:55)
Офлайн
self.pole_1.append(''.join(text))
import __hello__
Отредактировано delvin-fil (Янв. 8, 2018 14:43:31)
Офлайн
delvin-filРечь идёт не о <br> (его заменить на то, что нужно, но потом). Тут либо специальный метод какой-то есть, либо надо найти разделитель абзацев (переносов на новую строку) для QPlainTextEdit.
<br> явно лишний.
Офлайн
Kyrym
self.pole_1.append(text + '\n')
import __hello__
Офлайн
delvin-filКонечно, не пойдёт. Подобное предложение сродни троллингу…
Так не подойдет?
Офлайн
KyrymRTFM вам в помощь.
сродни троллингу…
import __hello__
Офлайн
чет не пойму, вы не знаете как обозначается символ перевода строки? Не пойму что вы хотите, МБ так?
text = self.pole_2.toPlainText().split('\n')
[code python][/code]
Отредактировано PEHDOM (Янв. 9, 2018 12:43:43)
Офлайн
Как обозначается символ переноса строки я знаю, может слэш не в ту сторону ставил, уже не помню. Но что-то не получилось, и тогда мне показалось, что для QPlainText разделитель ‘\n’ не подходит. Ошибся в общем.
Офлайн