class RichText(QWidget): """ WebView widget with find dialog """ def __init__(self, parent): QWidget.__init__(self, parent) self.webview = FrameWebView(self) self.find_widget = FindReplace(self) self.find_widget.set_editor(self.webview.web_widget) self.find_widget.hide() layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.webview) layout.addWidget(self.find_widget) self.setLayout(layout) def set_font(self, font, fixed_font=None): """Set font""" self.webview.set_font(font, fixed_font=fixed_font) def set_html(self, html_text, base_url): """Set html text""" self.webview.setHtml(html_text, base_url) def clear(self): self.set_html('', self.webview.url())
class RichText(QWidget): """ WebView widget with find dialog """ def __init__(self, parent): QWidget.__init__(self, parent) self.webview = FrameWebView(self) if WEBENGINE: self.webview.web_widget.page().setBackgroundColor( QColor(MAIN_BG_COLOR)) else: self.webview.web_widget.setStyleSheet( "background:{}".format(MAIN_BG_COLOR)) self.find_widget = FindReplace(self) self.find_widget.set_editor(self.webview.web_widget) self.find_widget.hide() layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.webview) layout.addWidget(self.find_widget) self.setLayout(layout) def set_font(self, font, fixed_font=None): """Set font""" self.webview.set_font(font, fixed_font=fixed_font) def set_html(self, html_text, base_url): """Set html text""" self.webview.setHtml(html_text, base_url) def clear(self): self.set_html('', self.webview.url())
class RichText(QWidget, SpyderWidgetMixin): """ WebView widget with find dialog """ sig_link_clicked = Signal(QUrl) def __init__(self, parent): if PYQT5: super().__init__(parent, class_parent=parent) else: QWidget.__init__(self, parent) SpyderWidgetMixin.__init__(self, class_parent=parent) self.webview = FrameWebView(self) self.webview.setup() if WEBENGINE: self.webview.web_widget.page().setBackgroundColor( QColor(MAIN_BG_COLOR)) else: self.webview.web_widget.setStyleSheet( "background:{}".format(MAIN_BG_COLOR)) self.webview.page().setLinkDelegationPolicy( QWebEnginePage.DelegateAllLinks) self.find_widget = FindReplace(self) self.find_widget.set_editor(self.webview.web_widget) self.find_widget.hide() # Layout layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.webview) layout.addWidget(self.find_widget) self.setLayout(layout) # Signals self.webview.linkClicked.connect(self.sig_link_clicked) def set_font(self, font, fixed_font=None): """Set font""" self.webview.set_font(font, fixed_font=fixed_font) def set_html(self, html_text, base_url): """Set html text""" self.webview.setHtml(html_text, base_url) def load_url(self, url): if isinstance(url, QUrl): qurl = url else: qurl = QUrl(url) self.webview.load(qurl) def clear(self): self.set_html('', self.webview.url())