本文整理汇总了Python中PyQt4.Qt.QFontDatabase类的典型用法代码示例。如果您正苦于以下问题:Python QFontDatabase类的具体用法?Python QFontDatabase怎么用?Python QFontDatabase使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QFontDatabase类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: writing_system_for_font
def writing_system_for_font(font):
has_latin = True
systems = QFontDatabase().writingSystems(font.family())
# this just confuses the algorithm below. Vietnamese is Latin with lots of
# special chars
try:
systems.remove(QFontDatabase.Vietnamese)
except ValueError:
pass
system = QFontDatabase.Any
if QFontDatabase.Latin not in systems:
has_latin = False
# we need to show something
if systems:
system = systems[-1]
else:
systems.remove(QFontDatabase.Latin)
if not systems:
return system, has_latin
if len(systems) == 1 and systems[0] > QFontDatabase.Cyrillic:
return systems[0], has_latin
if len(systems) <= 2 and systems[-1] > QFontDatabase.Armenian and systems[-1] < QFontDatabase.Vietnamese:
return systems[-1], has_latin
if len(systems) <= 5 and systems[-1] >= QFontDatabase.SimplifiedChinese and systems[-1] <= QFontDatabase.Korean:
system = systems[-1]
return system, has_latin
示例2: load_builtin_fonts
def load_builtin_fonts():
import glob
from PyQt4.Qt import QFontDatabase
base = P('fonts/liberation/*.ttf')
for f in glob.glob(base):
QFontDatabase.addApplicationFont(f)
return 'Liberation Serif', 'Liberation Sans', 'Liberation Mono'
示例3: read_font_fule
def read_font_fule(self, basedir, css):
from PyQt4.Qt import QFontDatabase
import cssutils
cssutils.log.setLevel(logging.ERROR)
try:
sheet = cssutils.parseString(css, validate=False)
except:
return
for rule in sheet.cssRules:
try:
s = rule.style
src = s.getProperty('src').propertyValue[0].uri
font_family = s.getProperty('font-family').propertyValue[0].value
except:
continue
if not src or not font_family:
continue
font_file = os.path.normcase(os.path.abspath(os.path.join(basedir,
src)))
if font_file not in self.added_fonts:
self.added_fonts.add(font_file)
if os.path.exists(font_file):
with open(font_file, 'rb') as f:
idx = QFontDatabase.addApplicationFontFromData(f.read())
if idx > -1:
family = map(unicode,
QFontDatabase.applicationFontFamilies(idx)).next()
self.log('Extracted embedded font:', family, 'from',
os.path.basename(font_file))
if (family and family != font_family and
family not in self.replace_map):
self.log('Replacing font family value:',
font_family, 'with', family)
self.replace_map[font_family.encode('utf-8')] = \
family.encode('utf-8')
示例4: add_font
def add_font(self, data):
existing = None
for font_id, entry in self.cache.iteritems():
if entry.size == len(data) and entry.hash == hash(data):
existing = entry
break
if existing is None:
font_id = QFontDatabase.addApplicationFontFromData(data)
if font_id > -1:
families = frozenset(map(lambda x:icu_lower(unicode(x)), QFontDatabase.applicationFontFamilies(font_id)))
self.cache[font_id] = self.entry(len(data), hash(data), families)
示例5: rating_font
def rating_font():
global _rating_font
if _rating_font is None:
from PyQt4.Qt import QFontDatabase
_rating_font = 'Arial Unicode MS' if iswindows else 'sans-serif'
fontid = QFontDatabase.addApplicationFont(
#P('fonts/liberation/LiberationSerif-Regular.ttf')
P('fonts/calibreSymbols.otf')
)
if fontid > -1:
try:
_rating_font = unicode(list(
QFontDatabase.applicationFontFamilies(fontid))[0])
except:
pass
return _rating_font
示例6: load_builtin_fonts
def load_builtin_fonts():
global _rating_font
# Load the builtin fonts and any fonts added to calibre by the user to
# Qt
for ff in glob.glob(P('fonts/liberation/*.?tf')) + \
[P('fonts/calibreSymbols.otf')] + \
glob.glob(os.path.join(config_dir, 'fonts', '*.?tf')):
if ff.rpartition('.')[-1].lower() in {'ttf', 'otf'}:
with open(ff, 'rb') as s:
# Windows requires font files to be executable for them to be
# loaded successfully, so we use the in memory loader
fid = QFontDatabase.addApplicationFontFromData(s.read())
if fid > -1:
fam = QFontDatabase.applicationFontFamilies(fid)
fam = set(map(unicode, fam))
if u'calibre Symbols' in fam:
_rating_font = u'calibre Symbols'
示例7: load_builtin_fonts
def load_builtin_fonts():
global _rating_font
# Load the builtin fonts and any fonts added to calibre by the user to
# Qt
for ff in (
glob.glob(P("fonts/liberation/*.?tf"))
+ [P("fonts/calibreSymbols.otf")]
+ glob.glob(os.path.join(config_dir, "fonts", "*.?tf"))
):
if ff.rpartition(".")[-1].lower() in {"ttf", "otf"}:
with open(ff, "rb") as s:
# Windows requires font files to be executable for them to be
# loaded successfully, so we use the in memory loader
fid = QFontDatabase.addApplicationFontFromData(s.read())
if fid > -1:
fam = QFontDatabase.applicationFontFamilies(fid)
fam = set(map(unicode, fam))
if u"calibre Symbols" in fam:
_rating_font = u"calibre Symbols"
示例8: initialiseFonts
def initialiseFonts():
fonts = [("NotCourierSans", "ncs.otf"),
('Inconsolata', 'inconsolata.otf'),
('BPmono', 'bpmono.ttf'),
('Liberation Mono', 'liberation.otf'),
('Oxygen Mono', 'oxygen.otf'),
('Open Sans', 'opensans.ttf'),
('Montserrat', 'montserrat.ttf'),
('Noto Sans', 'notosans.ttf'),
('PT Sans', 'ptsans.ttf'),
('Raleway', 'roboto.ttf'),
('Roboto', 'raleway.ttf')]
for fontName, fontFile in fonts:
if QFontDatabase.addApplicationFont(":/fonts/" + fontFile) == -1:
print fontName
else:
font = QFont(fontName)
Data.FontOptions.FontOptions.addFont(fontName, font)
Data.FontOptions.FontOptions.addFont(fontName, font)
示例9: handle_embedded_fonts
def handle_embedded_fonts(self):
'''
Because of QtWebKit's inability to handle embedded fonts correctly, we
remove the embedded fonts and make them available system wide instead.
If you ever move to Qt WebKit 2.3+ then this will be unnecessary.
'''
from calibre.ebooks.oeb.base import urlnormalize
from calibre.utils.fonts.utils import remove_embed_restriction
from PyQt4.Qt import QFontDatabase, QByteArray, QRawFont, QFont
# First find all @font-face rules and remove them, adding the embedded
# fonts to Qt
family_map = {}
for item in list(self.oeb.manifest):
if not hasattr(item.data, 'cssRules'): continue
remove = set()
for i, rule in enumerate(item.data.cssRules):
if rule.type == rule.FONT_FACE_RULE:
remove.add(i)
try:
s = rule.style
src = s.getProperty('src').propertyValue[0].uri
font_family = s.getProperty('font-family').propertyValue[0].value
except:
continue
path = item.abshref(src)
ff = self.oeb.manifest.hrefs.get(urlnormalize(path), None)
if ff is None:
continue
raw = ff.data
self.oeb.manifest.remove(ff)
try:
raw = remove_embed_restriction(raw)
except:
continue
fid = QFontDatabase.addApplicationFontFromData(QByteArray(raw))
family_name = None
if fid > -1:
try:
family_name = unicode(QFontDatabase.applicationFontFamilies(fid)[0])
except (IndexError, KeyError):
pass
if family_name:
family_map[icu_lower(font_family)] = family_name
for i in sorted(remove, reverse=True):
item.data.cssRules.pop(i)
# Now map the font family name specified in the css to the actual
# family name of the embedded font (they may be different in general).
font_warnings = set()
for item in self.oeb.manifest:
if not hasattr(item.data, 'cssRules'): continue
for i, rule in enumerate(item.data.cssRules):
if rule.type != rule.STYLE_RULE: continue
ff = rule.style.getProperty('font-family')
if ff is None: continue
val = ff.propertyValue
for i in xrange(val.length):
try:
k = icu_lower(val[i].value)
except (AttributeError, TypeError):
val[i].value = k = 'times'
if k in family_map:
val[i].value = family_map[k]
if iswindows:
# On windows, Qt uses GDI which does not support OpenType
# (CFF) fonts, so we need to nuke references to OpenType
# fonts. Note that you could compile QT with configure
# -directwrite, but that requires atleast Vista SP2
for i in xrange(val.length):
family = val[i].value
if family:
f = QRawFont.fromFont(QFont(family))
if len(f.fontTable('head')) == 0:
if family not in font_warnings:
self.log.warn('Ignoring unsupported font: %s'
%family)
font_warnings.add(family)
# Either a bitmap or (more likely) a CFF font
val[i].value = 'times'
示例10: remove_fonts
def remove_fonts(self):
for font_id in self.cache:
QFontDatabase.removeApplicationFont(font_id)
self.cache.clear()
示例11: handle_embedded_fonts
def handle_embedded_fonts(self):
'''
Because of QtWebKit's inability to handle embedded fonts correctly, we
remove the embedded fonts and make them available system wide instead.
If you ever move to Qt WebKit 2.3+ then this will be unnecessary.
'''
from calibre.ebooks.oeb.base import urlnormalize
from calibre.gui2 import must_use_qt
from calibre.utils.fonts.utils import get_font_names, remove_embed_restriction
from PyQt4.Qt import QFontDatabase, QByteArray
# First find all @font-face rules and remove them, adding the embedded
# fonts to Qt
family_map = {}
for item in list(self.oeb.manifest):
if not hasattr(item.data, 'cssRules'): continue
remove = set()
for i, rule in enumerate(item.data.cssRules):
if rule.type == rule.FONT_FACE_RULE:
remove.add(i)
try:
s = rule.style
src = s.getProperty('src').propertyValue[0].uri
font_family = s.getProperty('font-family').propertyValue[0].value
except:
continue
path = item.abshref(src)
ff = self.oeb.manifest.hrefs.get(urlnormalize(path), None)
if ff is None:
continue
raw = ff.data
self.oeb.manifest.remove(ff)
try:
raw = remove_embed_restriction(raw)
except:
continue
must_use_qt()
QFontDatabase.addApplicationFontFromData(QByteArray(raw))
try:
family_name = get_font_names(raw)[0]
except:
family_name = None
if family_name:
family_map[icu_lower(font_family)] = family_name
for i in sorted(remove, reverse=True):
item.data.cssRules.pop(i)
# Now map the font family name specified in the css to the actual
# family name of the embedded font (they may be different in general).
for item in self.oeb.manifest:
if not hasattr(item.data, 'cssRules'): continue
for i, rule in enumerate(item.data.cssRules):
if rule.type != rule.STYLE_RULE: continue
ff = rule.style.getProperty('font-family')
if ff is None: continue
val = ff.propertyValue
for i in xrange(val.length):
k = icu_lower(val[i].value)
if k in family_map:
val[i].value = family_map[k]
示例12: setupUi
#.........这里部分代码省略.........
brush = QtGui.QBrush(QtGui.QColor(80, 80, 80))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
MainWindow.setPalette(palette)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.groupBox = QtGui.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(70, 60, 291, 381))
self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.listFonts = QtGui.QListWidget(self.groupBox)
self.listFonts.setGeometry(QtCore.QRect(20, 30, 251, 331))
self.listFonts.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
self.listFonts.setObjectName(_fromUtf8("listFonts"))
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 460, 91, 61))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.lineTempFolder = QtGui.QLineEdit(self.centralwidget)
self.lineTempFolder.setGeometry(QtCore.QRect(120, 480, 271, 21))
self.lineTempFolder.setObjectName(_fromUtf8("lineTempFolder"))
self.pushQuery = QtGui.QPushButton(self.centralwidget)
self.pushQuery.setGeometry(QtCore.QRect(150, 570, 99, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.pushQuery.setFont(font)
self.pushQuery.setObjectName(_fromUtf8("pushQuery"))
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(20, 10, 91, 51))
self.label.setObjectName(_fromUtf8("label"))
self.labPaint = QtGui.QLabel(self.centralwidget)
self.labPaint.setGeometry(QtCore.QRect(20, 20, 591, 471))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.labPaint.setPalette(palette)
font = QtGui.QFont()
font.setPointSize(18)
self.labPaint.setFont(font)
self.labPaint.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignTop)
self.labPaint.setMargin(55)
self.labPaint.setObjectName(_fromUtf8("labPaint"))
self.lineWordList = QtGui.QLineEdit(self.centralwidget)
self.lineWordList.setGeometry(QtCore.QRect(90, 20, 271, 21))
self.lineWordList.setObjectName(_fromUtf8("lineWordList"))
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(10, 520, 91, 61))
self.label_3.setObjectName(_fromUtf8("label_3"))
self.lineFolder = QtGui.QLineEdit(self.centralwidget)
self.lineFolder.setGeometry(QtCore.QRect(120, 540, 271, 21))
self.lineFolder.setObjectName(_fromUtf8("lineFolder"))
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
#my code
self.labPaint.setVisible(False)
self.lineWordList.setText('/home/phoenix/Desktop/handcraft/lexeis.txt')
self.lineFolder.setText("/home/phoenix/Desktop/noscale/")
self.lineTempFolder.setText('/tmp/')
#get installed fonts
fontdb=QFontDatabase()
for font in fontdb.families():
f=QtGui.QFont(font)
f.setPointSize(12)
f.setPixelSize(12)
it=QtGui.QListWidgetItem()
it.setFont(f)
it.setText(font)
self.listFonts.addItem(it)
#SLOTS
QtCore.QObject.connect(self.pushQuery,QtCore.SIGNAL('clicked()'),self.GenerateSynthetic)