def __init__(self, parent=None): super(htmlPreview, self).__init__(parent) hbox = QHBoxLayout() self.refreshButton = QPushButton(u"Refresh") hbox.addWidget(self.refreshButton, 0) hbox.addStretch(1) self.refreshAndClearButton = QPushButton(u"Refresh + Clear") hbox.addWidget(self.refreshAndClearButton) vbox = QVBoxLayout() vbox.addLayout(hbox, 0) self.preview = QWebView(self) # save a shortcut reference to web page and its history self.webPage = self.preview.page() self.history = self.preview.page().history() vbox.addWidget(self.preview, 1) self.setLayout(vbox) # make the web preview uneditable self.webPage.setContentEditable(False) self.settings = self.preview.settings() # Find out the nearest font to Palatino qf = QFont() qf.setStyleStrategy(QFont.PreferAntialias + QFont.PreferMatch) qf.setStyleHint(QFont.Serif) qf.setFamily(QString(u'Palatino')) qfi = QFontInfo(qf) # set the default font to that serif font self.settings.setFontFamily(QWebSettings.StandardFont, qfi.family()) self.settings.setFontSize(QWebSettings.DefaultFontSize, 16) self.settings.setFontSize(QWebSettings.MinimumFontSize, 6) self.settings.setFontSize(QWebSettings.MinimumLogicalFontSize, 6) self.zoomFactor = 1.0 # Disable everything but bog-standard html, appropriate for PP self.settings.setAttribute(QWebSettings.JavascriptEnabled, False) self.settings.setAttribute(QWebSettings.JavaEnabled, False) self.settings.setAttribute(QWebSettings.PluginsEnabled, False) self.settings.setAttribute(QWebSettings.ZoomTextOnly, False) # the following causes a hard error in linux #self.settings.setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False) # hook up the refresh buttons self.connect(self.refreshButton, SIGNAL("clicked()"), self.refresh1Click) self.connect(self.refreshAndClearButton, SIGNAL("clicked()"), self.refresh2Click) # hook up the load status signals self.connect(self.preview, SIGNAL("loadStarted()"), self.loadStarts) self.connect(self.preview, SIGNAL("loadProgress(int)"), self.loadProgresses) self.connect(self.preview, SIGNAL("loadFinished(bool)"), self.loadEnds) # here we store the scroll position to return to after reloading self.scrollPosition = QPoint(0, 0) # here save the user's find text for ctl-g use self.findText = QString() # here store the base URL for the current book. self.baseURL = QUrl()
def __init__(self, parent=None ): super(htmlPreview, self).__init__(parent) hbox = QHBoxLayout() self.refreshButton = QPushButton(u"Refresh") hbox.addWidget(self.refreshButton,0) hbox.addStretch(1) self.refreshAndClearButton = QPushButton(u"Refresh + Clear") hbox.addWidget(self.refreshAndClearButton) vbox = QVBoxLayout() vbox.addLayout(hbox,0) self.preview = QWebView(self) # save a shortcut reference to web page and its history self.webPage = self.preview.page() self.history = self.preview.page().history() vbox.addWidget(self.preview,1) self.setLayout(vbox) # make the web preview uneditable self.webPage.setContentEditable(False) self.settings = self.preview.settings() # Find out the nearest font to Palatino qf = QFont() qf.setStyleStrategy(QFont.PreferAntialias+QFont.PreferMatch) qf.setStyleHint(QFont.Serif) qf.setFamily(QString(u'Palatino')) qfi = QFontInfo(qf) # set the default font to that serif font self.settings.setFontFamily(QWebSettings.StandardFont, qfi.family()) self.settings.setFontSize(QWebSettings.DefaultFontSize, 16) self.settings.setFontSize(QWebSettings.MinimumFontSize, 6) self.settings.setFontSize(QWebSettings.MinimumLogicalFontSize, 6) self.zoomFactor = 1.0 # Disable everything but bog-standard html, appropriate for PP self.settings.setAttribute(QWebSettings.JavascriptEnabled, False) self.settings.setAttribute(QWebSettings.JavaEnabled, False) self.settings.setAttribute(QWebSettings.PluginsEnabled, False) self.settings.setAttribute(QWebSettings.ZoomTextOnly, False) # the following causes a hard error in linux #self.settings.setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False) # hook up the refresh buttons self.connect(self.refreshButton, SIGNAL("clicked()"),self.refresh1Click) self.connect(self.refreshAndClearButton, SIGNAL("clicked()"),self.refresh2Click) # hook up the load status signals self.connect(self.preview,SIGNAL("loadStarted()"),self.loadStarts ) self.connect(self.preview,SIGNAL("loadProgress(int)"),self.loadProgresses ) self.connect(self.preview,SIGNAL("loadFinished(bool)"),self.loadEnds ) # here we store the scroll position to return to after reloading self.scrollPosition = QPoint(0,0) # here save the user's find text for ctl-g use self.findText = QString() # here store the base URL for the current book. self.baseURL = QUrl()
def __init__(self, parent=None ): super(helpDisplay, self).__init__(parent) # make page unmodifiable self.page().setContentEditable(False) # initialize settings # Find out the nearest font to Palatino qf = QFont() qf.setStyleStrategy(QFont.PreferAntialias+QFont.PreferMatch) qf.setStyleHint(QFont.Serif) qf.setFamily(QString(u'Palatino')) qfi = QFontInfo(qf) # set the default font to that serif font self.settings().setFontFamily(QWebSettings.StandardFont, qfi.family()) self.settings().setFontSize(QWebSettings.DefaultFontSize, 16) self.settings().setFontSize(QWebSettings.MinimumFontSize, 6) self.settings().setFontSize(QWebSettings.MinimumLogicalFontSize, 6) self.textZoomFactor = 1.0 self.setTextSizeMultiplier(self.textZoomFactor) self.settings().setAttribute(QWebSettings.JavascriptEnabled, False) self.settings().setAttribute(QWebSettings.JavaEnabled, False) self.settings().setAttribute(QWebSettings.PluginsEnabled, False) self.settings().setAttribute(QWebSettings.ZoomTextOnly, True) #self.settings().setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False) self.userFindText = QString() # Look for pqHelp.html in the app folder and copy its text into # a local buffer. If it isn't found, put a message there instead. # We need to keep it in order to implement the "back" function. helpPath = os.path.join(IMC.appBasePath,u'pqHelp.html') helpFile = QFile(helpPath) if not helpFile.exists(): self.HTMLstring = QString('''<p>Unable to locate pqHelp.html.</p> <p>Looking in {0}'''.format(helpPath) ) elif not helpFile.open(QIODevice.ReadOnly) : self.HTMLstring = QString('''<p>Unable to open pqHelp.html.</p> <p>Looking in {0}</p><p>Error code {1}</p>'''.format(helpPath, helpFile.error()) ) else: helpStream = QTextStream(helpFile) helpStream.setCodec('ISO8859-1') self.HTMLstring = helpStream.readAll() self.setHtml(self.HTMLstring)
def setFont(self, font): if sys.platform == "darwin": if QFontInfo(font).fixedPitch() and font.pointSize() <= 10: font.setStyleStrategy(QFont.NoAntialias) bolditalic = "" bolditalic += font.bold() and "Bold " or "" bolditalic += font.italic() and "Italic " or "" fullName = "%s %s%s" % (font.family(), bolditalic, font.pointSize()) self._font = font self.fontPreview.setFont(font) self.fontPreview.setText(fullName)
def __init__(self, parent=None): super(helpDisplay, self).__init__(parent) # make page unmodifiable self.page().setContentEditable(False) # initialize settings # Find out the nearest font to Palatino qf = QFont() qf.setStyleStrategy(QFont.PreferAntialias + QFont.PreferMatch) qf.setStyleHint(QFont.Serif) qf.setFamily(QString(u'Palatino')) qfi = QFontInfo(qf) # set the default font to that serif font self.settings().setFontFamily(QWebSettings.StandardFont, qfi.family()) self.settings().setFontSize(QWebSettings.DefaultFontSize, 16) self.settings().setFontSize(QWebSettings.MinimumFontSize, 6) self.settings().setFontSize(QWebSettings.MinimumLogicalFontSize, 6) self.textZoomFactor = 1.0 self.setTextSizeMultiplier(self.textZoomFactor) self.settings().setAttribute(QWebSettings.JavascriptEnabled, False) self.settings().setAttribute(QWebSettings.JavaEnabled, False) self.settings().setAttribute(QWebSettings.PluginsEnabled, False) self.settings().setAttribute(QWebSettings.ZoomTextOnly, True) #self.settings().setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False) self.userFindText = QString() # Look for pqHelp.html in the app folder and copy its text into # a local buffer. If it isn't found, put a message there instead. # We need to keep it in order to implement the "back" function. helpPath = os.path.join(IMC.appBasePath, u'pqHelp.html') helpFile = QFile(helpPath) if not helpFile.exists(): self.HTMLstring = QString('''<p>Unable to locate pqHelp.html.</p> <p>Looking in {0}'''.format(helpPath)) elif not helpFile.open(QIODevice.ReadOnly): self.HTMLstring = QString('''<p>Unable to open pqHelp.html.</p> <p>Looking in {0}</p><p>Error code {1}</p>'''.format( helpPath, helpFile.error())) else: helpStream = QTextStream(helpFile) helpStream.setCodec('ISO8859-1') self.HTMLstring = helpStream.readAll() self.setHtml(self.HTMLstring)
def get_monospace_font(self): preferred_fonts_windows = ['Courier New', 'Lucida Console'] preferred_fonts_linux = ['Noto Mono', 'Monospace'] if 'Windows' in platform.system(): pfonts = preferred_fonts_windows else: pfonts = preferred_fonts_linux for fontname in pfonts: font = QFont(fontname) font.setPointSize(12) info = QFontInfo(font) if info.fixedPitch(): return font print('Warning: no font in preferred list %s found!'%pfonts) font = QFont() font.setStyleHint(QFont.Monospace) info = QFontInfo(font) print('Selected font family: %s'%info.family())