Найти - Пользователи
Полная версия: PyQT4 | Text из QPlainTextEdit в QTextEdit по абзацам?
Начало » GUI » PyQT4 | Text из QPlainTextEdit в QTextEdit по абзацам?
1
Kyrym
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
delvin-fil
 self.pole_1.append(''.join(text))
<br> явно лишний.
Вот только на теги он у вас не реагирует. Проверять лень, праздники, извините.
Kyrym
delvin-fil
<br> явно лишний.
Речь идёт не о <br> (его заменить на то, что нужно, но потом). Тут либо специальный метод какой-то есть, либо надо найти разделитель абзацев (переносов на новую строку) для QPlainTextEdit.
delvin-fil
Kyrym
 self.pole_1.append(text + '\n')
Так не подойдет?
Kyrym
delvin-fil
Так не подойдет?
Конечно, не пойдёт. Подобное предложение сродни троллингу…
delvin-fil
Kyrym
сродни троллингу…
RTFM вам в помощь.
PEHDOM
чет не пойму, вы не знаете как обозначается символ перевода строки? Не пойму что вы хотите, МБ так?
 text = self.pole_2.toPlainText().split('\n')
Kyrym
Как обозначается символ переноса строки я знаю, может слэш не в ту сторону ставил, уже не помню. Но что-то не получилось, и тогда мне показалось, что для QPlainText разделитель ‘\n’ не подходит. Ошибся в общем.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB