def _find_font(self): font = QFont() wanted_size = self._point_size font.setStyleStrategy(QFont.StyleStrategy(QFont.OpenGLCompatible | QFont.PreferAntialias)) fm = QFontMetricsF(font) width = fm.width("888") ratio = 1.8*wanted_size/max(width, fm.ascent()) self._font = font self._font_zoom = ratio
def getMonoFont(fontsize=12, msg=False): monofont = QFont() monofont.setStyleStrategy(QFont.PreferAntialias+QFont.PreferMatch) monofont.setStyleHint(QFont.Courier) monofont.setFamily(IMC.fontFamily) monofont.setFixedPitch(True) # probably unnecessary monofont.setPointSize(fontsize) if msg and (monofont.family() != IMC.fontFamily): infoMsg("Font {0} not available, using {1}".format( IMC.fontFamily, monoinf.family()) ) return monofont
def _find_font(self): font = QFont() wanted_size = self._point_size font.setStyleStrategy( QFont.StyleStrategy(QFont.OpenGLCompatible | QFont.PreferAntialias)) fm = QFontMetricsF(font) width = fm.width("888") ratio = 1.8 * wanted_size / max(width, fm.ascent()) self._font = font self._font_zoom = ratio
def displayLayerProperties( self ): """ It is required to build the QLabel widget every time it is set """ propertiesFont = QFont() propertiesFont.setItalic( True ) propertiesFont.setPointSize( 8 ) propertiesFont.setStyleStrategy( QFont.PreferAntialias ) label = QLabel( self.properties ) label.setTextInteractionFlags( Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard ) label.setFont( propertiesFont ) self.legend.setItemWidget( self.child, 0, label )
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 displayLayerProperties(self): """ It is required to build the QLabel widget every time it is set """ propertiesFont = QFont() propertiesFont.setItalic(True) propertiesFont.setPointSize(8) propertiesFont.setStyleStrategy(QFont.PreferAntialias) label = QLabel(self.properties) label.setTextInteractionFlags(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard) label.setFont(propertiesFont) self.legend.setItemWidget(self.child, 0, label)
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 fontHasChar(fontFamily, char): if not hasFontAvailability(): return False from PyQt4.QtGui import QFont, QFontMetrics from PyQt4.QtCore import QString global _currentFontFamily global _currentFontMetrics if not _currentFontFamily or _currentFontFamily != fontFamily: _currentFontFamily = fontFamily font = QFont(fontFamily) oldStrategy = font.styleStrategy() font.setStyleStrategy(oldStrategy and QFont.NoFontMerging) _currentFontMetrics = QFontMetrics(font) return _currentFontMetrics.inFont(QString(char).at(0))
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 __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)