Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt 4 | Вывод html-кода в многострочное поле [RSS Feed]

#1 Июль 26, 2017 10:11:05

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

Пытаюсь вывести html-код - в примере это “<br>” в многострочное текстовое поле, используя теги: “<code></code>” Однако пока болты.

 # Python 3. PyQt4
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
# ЦВЕТА ПОЛЕЙ
sss_vivod = ("background-color: #456173; color: #f2f2f0; font: 14pt 'Courier New'")
# ГРАФИКА
class Window(QtGui.QWidget): # Класс Window  наследует класс QWidget
    def __init__(self, parent=None): # Создаёт конструктор класса, parent - ссылка на родительский эл-т
        QtGui.QWidget.__init__(self, parent)
        self.resize(200, 400) # шир / выс окна         
# БЛОК РАЗМЕТКИ
        #self.grid_os = QtGui.QGridLayout() # Сетка
        self.vbox = QtGui.QVBoxLayout()
        # ---
        self.pole_vivod = QtGui.QTextEdit('')
        self.pole_vivod.setStyleSheet(sss_vivod)
        self.vbox.addWidget(self.pole_vivod)
        # ---
        self.setLayout(self.vbox)
        # ---
        Window.on_start(self)
    # ЛОГИКА
    
    def on_start(self):
        i = 'fsdh <br> df <code><br></code>'
        self.pole_vivod.append(str(i))
        self.pole_vivod.moveCursor(QtGui.QTextCursor.Start)
# КОНЕЦ
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    window = Window() # создаёт экземпляр окна из класса   
    window.show() # запускает окно
    sys.exit(app.exec_())

Отредактировано Kyrym (Июль 31, 2017 15:03:58)

Офлайн

#2 Июль 26, 2017 10:40:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

 Window.on_start(self)
# ЛОГИКА
где вы тут логику увидели, я теряюсь в догадках. Пять раз подряд вызывать методы объекта через self, а на шестой забыть нахрена это делал и внезапно начать вызывать методы класса - это как-то далеко за пределами логики.



Офлайн

#3 Июль 26, 2017 11:32:06

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

А я теряюсь в догадках, почему Вы ещё комментируете мои сообщения, всё равно к общему знаменателю мы не приходим.

FishHook
Пять раз подряд вызывать методы объекта через self, а на шестой забыть нахрена это делал и внезапно начать вызывать методы класса
Я проблемы не вижу: код работает за исключением указанного в теме вопроса.

Офлайн

#4 Июль 26, 2017 12:02:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

Kyrym
А я теряюсь в догадках, почему Вы ещё комментируете мои сообщения
А вы хотите, чтобы я их сразу стирал?

Kyrym
Я проблемы не вижу
Ну и замечательно, потому что ваша программа работает



Тему закрываем?



Отредактировано FishHook (Июль 26, 2017 12:03:05)

Офлайн

#5 Июль 26, 2017 12:44:07

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

Зачем же закрывать тему, если на мой вопрос пока нет ответа?
Я не понял, что вы хотели показать данным скриншотом. Возможно, Вы не поняли, чего я добиваюсь от программы.

В многострочном поле я хочу увидеть следующий текст:

fsdh
df <br>
А пока вижу вот это:
fsdh
df

Офлайн

#6 Июль 26, 2017 12:59:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

Kyrym
Возможно, Вы не поняли, чего я добиваюсь от программы.
Разумеется, я не понял, потому что вы не потрудились по-человечески описать свою проблему.
Нагуглил минуты за две

 self.pole_vivod = QPlainTextEdit('')
...
self.pole_vivod.appendPlainText(i)



Офлайн

#7 Июль 26, 2017 13:08:57

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

FishHook
QPlainTextEdit
QPlainTextEdit зарежет весь код html, а меня интересует выборочная “фильтрация” тегов.
QTextEdit - обязателен.

Офлайн

#8 Июль 26, 2017 13:32:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

Kyrym
Если хотите отображать теги, то скобочки <> надо заменить на соответствующие символы юникода
https://pypi.python.org/pypi/bleach



Офлайн

#9 Июль 26, 2017 13:47:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

PyQt 4 | Вывод html-кода в многострочное поле

В HTML для отображения знаков используются символьные ссылки (именованные или числовые).
http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.3

&lt;br&gt;



Отредактировано py.user.next (Июль 26, 2017 13:50:40)

Офлайн

  • Начало
  • » GUI
  • » PyQt 4 | Вывод html-кода в многострочное поле[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version