com.trolltech.qt.gui
Class QFontDatabase

java.lang.Object
  extended by com.trolltech.qt.internal.QSignalEmitterInternal
      extended by com.trolltech.qt.QSignalEmitter
          extended by com.trolltech.qt.QtJambiObject
              extended by com.trolltech.qt.gui.QFontDatabase
All Implemented Interfaces:
QtJambiInterface, java.lang.Cloneable

public class QFontDatabase
extends QtJambiObject
implements java.lang.Cloneable

The QFontDatabase class provides information about the fonts available in the underlying window system. The most common uses of this class are to query the database for the list of font families() and for the pointSizes() and styles() that are available for each family. An alternative to pointSizes() is smoothSizes() which returns the sizes at which a given family and style will look attractive.

If the font family is available from two or more foundries the foundry name is included in the family name, e.g. "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family you can either use the old hyphenated Qt 2.x "foundry-family" format, e.g. "Cronyx-Helvetica", or the new bracketed Qt 3.x "family [foundry]" format e.g. "Helvetica [Cronyx]". If the family has a foundry it is always returned, e.g. by families(), using the bracketed format.

The font() function returns a QFont given a family, style and point size.

A family and style combination can be checked to see if it is italic() or bold(), and to retrieve its weight(). Similarly we can call isBitmapScalable(), isSmoothlyScalable(), isScalable() and isFixedPitch().

Use the styleString() to obtain a text version of a style.

The QFontDatabase class also supports some static functions, for example, standardSizes(). You can retrieve the description of a writing system using writingSystemName(), and a sample of characters in a writing system with writingSystemSample().

Example:

        QFontDatabase database = new QFontDatabase();
        QTreeWidget fontTree = new QTreeWidget();
        fontTree.setColumnCount(2);
        List<String> headers = new Vector<String>();
        headers.add("Font");
        headers.add("Smooth Sizes");

        fontTree.setHeaderLabels(headers);

        for (String family : database.families()) {
            QTreeWidgetItem familyItem = new QTreeWidgetItem(fontTree);
            familyItem.setText(0, family);

            for (String style : database.styles(family)) {
                QTreeWidgetItem styleItem = new QTreeWidgetItem(familyItem);
                styleItem.setText(0, style);

                String sizes = "";
                for (int points : database.smoothSizes(family, style))
                    sizes += String.valueOf(points) + " ";

                styleItem.setText(1, sizes.trim());
            }

        }
    
This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.

See also:
QFont, QFontInfo, QFontMetrics, QFontComboBox, and Character Map Example.


Nested Class Summary
static class QFontDatabase.WritingSystem
           
 
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
QSignalEmitter.AbstractSignal, QSignalEmitter.PrivateSignal0, QSignalEmitter.PrivateSignal1, QSignalEmitter.PrivateSignal2, QSignalEmitter.PrivateSignal3, QSignalEmitter.PrivateSignal4, QSignalEmitter.PrivateSignal5, QSignalEmitter.PrivateSignal6, QSignalEmitter.PrivateSignal7, QSignalEmitter.PrivateSignal8, QSignalEmitter.PrivateSignal9, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9
 
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal
 
Field Summary
 
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
currentSender
 
Constructor Summary
QFontDatabase()
          Creates a font database object.
 
Method Summary
static int addApplicationFont(java.lang.String fileName)
          Loads the font from the file specified by fileName and makes it available to the application.
static int addApplicationFontFromData(QByteArray fontData)
          Loads the font from binary data specified by fontData and makes it available to the application.
static java.util.List applicationFontFamilies(int id)
          Returns a list of font families for the given application font identified by id.
 boolean bold(java.lang.String family, java.lang.String style)
          Returns true if the font that has family family and style style is bold; otherwise returns false.
 QFontDatabase clone()
          This method is reimplemented for internal reasons
 java.util.List families()
          Returns a sorted list of the available font families.
 java.util.List families(QFontDatabase.WritingSystem writingSystem)
          Returns a sorted list of the available font families which support the writingSystem.
 QFont font(java.lang.String family, java.lang.String style, int pointSize)
          Returns a QFont object that has family family, style style and point size pointSize.
 boolean isBitmapScalable(java.lang.String family)
          Returns true if the font that has family family and style style is a scalable bitmap font; otherwise returns false.
 boolean isBitmapScalable(java.lang.String family, java.lang.String style)
          Returns true if the font that has family family and style style is a scalable bitmap font; otherwise returns false.
 boolean isFixedPitch(java.lang.String family)
          Returns true if the font that has family family and style style is fixed pitch; otherwise returns false.
 boolean isFixedPitch(java.lang.String family, java.lang.String style)
          Returns true if the font that has family family and style style is fixed pitch; otherwise returns false.
 boolean isScalable(java.lang.String family)
          Returns true if the font that has family family and style style is scalable; otherwise returns false.
 boolean isScalable(java.lang.String family, java.lang.String style)
          Returns true if the font that has family family and style style is scalable; otherwise returns false.
 boolean isSmoothlyScalable(java.lang.String family)
          Returns true if the font that has family family and style style is smoothly scalable; otherwise returns false.
 boolean isSmoothlyScalable(java.lang.String family, java.lang.String style)
          Returns true if the font that has family family and style style is smoothly scalable; otherwise returns false.
 boolean italic(java.lang.String family, java.lang.String style)
          Returns true if the font that has family family and style style is italic; otherwise returns false.
 java.util.List pointSizes(java.lang.String family)
          Returns a list of the point sizes available for the font that has the specified family.
 java.util.List pointSizes(java.lang.String family, java.lang.String style)
          Returns a list of the point sizes available for the font that has family family and style style.
static boolean removeAllApplicationFonts()
          Removes all application-local fonts previously added using addApplicationFont() and addApplicationFontFromData().
static boolean removeApplicationFont(int id)
          Removes the previously loaded application font identified by id.
 java.util.List smoothSizes(java.lang.String family, java.lang.String style)
          Returns the point sizes of a font that has family family and style style that will look attractive.
static java.util.List standardSizes()
          Returns a list of standard font sizes.
 java.util.List styles(java.lang.String family)
          Returns a list of the styles available for the font family family.
 java.lang.String styleString(QFont font)
          Returns a string that describes the style of the font.
 java.lang.String styleString(QFontInfo fontInfo)
          Returns a string that describes the style of the fontInfo.
static boolean supportsThreadedFontRendering()
          Returns true if font rendering is supported outside the GUI thread, false otherwise.
 int weight(java.lang.String family, java.lang.String style)
          Returns the weight of the font that has family family and style style.
static java.lang.String writingSystemName(QFontDatabase.WritingSystem writingSystem)
          Returns the names the writingSystem (e.g.
 java.util.List writingSystems()
          Returns a sorted list of the available writing systems.
 java.util.List writingSystems(java.lang.String family)
          Returns a sorted list of the writing systems supported by a given font family.
static java.lang.String writingSystemSample(QFontDatabase.WritingSystem writingSystem)
          Returns a string with sample characters from writingSystem.
 
Methods inherited from class com.trolltech.qt.QtJambiObject
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr
 
Methods inherited from class com.trolltech.qt.QSignalEmitter
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread
 
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
__qt_signalInitialization
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.trolltech.qt.QtJambiInterface
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership
 

Constructor Detail

QFontDatabase

public QFontDatabase()
Creates a font database object.

Method Detail

bold

public final boolean bold(java.lang.String family,
                          java.lang.String style)
Returns true if the font that has family family and style style is bold; otherwise returns false.

See also:
italic(), and weight().


families

public final java.util.List families()
Returns a sorted list of the available font families.


families

public final java.util.List families(QFontDatabase.WritingSystem writingSystem)
Returns a sorted list of the available font families which support the writingSystem.

If a family exists in several foundries, the returned name for that font is in the form "family [foundry]". Examples: "Times [Adobe]", "Times [Cronyx]", "Palatino".

See also:
writingSystems().


font

public final QFont font(java.lang.String family,
                        java.lang.String style,
                        int pointSize)
Returns a QFont object that has family family, style style and point size pointSize. If no matching font could be created, a QFont object that uses the application's default font is returned.


isBitmapScalable

public final boolean isBitmapScalable(java.lang.String family)
Returns true if the font that has family family and style style is a scalable bitmap font; otherwise returns false. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by smoothSizes().

See also:
isScalable(), and isSmoothlyScalable().


isBitmapScalable

public final boolean isBitmapScalable(java.lang.String family,
                                      java.lang.String style)
Returns true if the font that has family family and style style is a scalable bitmap font; otherwise returns false. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by smoothSizes().

See also:
isScalable(), and isSmoothlyScalable().


isFixedPitch

public final boolean isFixedPitch(java.lang.String family)
Returns true if the font that has family family and style style is fixed pitch; otherwise returns false.


isFixedPitch

public final boolean isFixedPitch(java.lang.String family,
                                  java.lang.String style)
Returns true if the font that has family family and style style is fixed pitch; otherwise returns false.


isScalable

public final boolean isScalable(java.lang.String family)
Returns true if the font that has family family and style style is scalable; otherwise returns false.

See also:
isBitmapScalable(), and isSmoothlyScalable().


isScalable

public final boolean isScalable(java.lang.String family,
                                java.lang.String style)
Returns true if the font that has family family and style style is scalable; otherwise returns false.

See also:
isBitmapScalable(), and isSmoothlyScalable().


isSmoothlyScalable

public final boolean isSmoothlyScalable(java.lang.String family)
Returns true if the font that has family family and style style is smoothly scalable; otherwise returns false. If this function returns true, it's safe to scale this font to any size, and the result will always look attractive.

See also:
isScalable(), and isBitmapScalable().


isSmoothlyScalable

public final boolean isSmoothlyScalable(java.lang.String family,
                                        java.lang.String style)
Returns true if the font that has family family and style style is smoothly scalable; otherwise returns false. If this function returns true, it's safe to scale this font to any size, and the result will always look attractive.

See also:
isScalable(), and isBitmapScalable().


italic

public final boolean italic(java.lang.String family,
                            java.lang.String style)
Returns true if the font that has family family and style style is italic; otherwise returns false.

See also:
weight(), and bold().


pointSizes

public final java.util.List pointSizes(java.lang.String family)
Returns a list of the point sizes available for the font that has the specified family. The list may be empty.


pointSizes

public final java.util.List pointSizes(java.lang.String family,
                                       java.lang.String style)
Returns a list of the point sizes available for the font that has family family and style style. The list may be empty.

See also:
smoothSizes(), and standardSizes().


smoothSizes

public final java.util.List smoothSizes(java.lang.String family,
                                        java.lang.String style)
Returns the point sizes of a font that has family family and style style that will look attractive. The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to pointSizes().

See also:
pointSizes(), and standardSizes().


styleString

public final java.lang.String styleString(QFont font)
Returns a string that describes the style of the font. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.


styleString

public final java.lang.String styleString(QFontInfo fontInfo)
Returns a string that describes the style of the fontInfo. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.


styles

public final java.util.List styles(java.lang.String family)
Returns a list of the styles available for the font family family. Some example styles: "Light", "Light Italic", "Bold", "Oblique", "Demi". The list may be empty.

See also:
families().


weight

public final int weight(java.lang.String family,
                        java.lang.String style)
Returns the weight of the font that has family family and style style. If there is no such family and style combination, returns -1.

See also:
italic(), and bold().


writingSystems

public final java.util.List writingSystems()
Returns a sorted list of the available writing systems. This is list generated from information about all installed fonts on the system.

See also:
families().


writingSystems

public final java.util.List writingSystems(java.lang.String family)
Returns a sorted list of the writing systems supported by a given font family.

See also:
families().


addApplicationFont

public static int addApplicationFont(java.lang.String fileName)
Loads the font from the file specified by fileName and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont() or to retrieve the list of family names contained in the font.

The function returns -1 if the font could not be loaded.

Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported.

Note: Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.

See also:
addApplicationFontFromData(), applicationFontFamilies(), and removeApplicationFont().


addApplicationFontFromData

public static int addApplicationFontFromData(QByteArray fontData)
Loads the font from binary data specified by fontData and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont() or to retrieve the list of family names contained in the font.

The function returns -1 if the font could not be loaded.

Currently only TrueType fonts and TrueType font collections are supported.

Note: Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.

See also:
addApplicationFont(), applicationFontFamilies(), and removeApplicationFont().


applicationFontFamilies

public static java.util.List applicationFontFamilies(int id)
Returns a list of font families for the given application font identified by id.

See also:
addApplicationFont(), and addApplicationFontFromData().


removeAllApplicationFonts

public static boolean removeAllApplicationFonts()
Removes all application-local fonts previously added using addApplicationFont() and addApplicationFontFromData().

Returns true if unloading of the fonts succeeded; otherwise returns false.

See also:
removeApplicationFont(), addApplicationFont(), and addApplicationFontFromData().


removeApplicationFont

public static boolean removeApplicationFont(int id)
Removes the previously loaded application font identified by id. Returns true if unloading of the font succeeded; otherwise returns false.

See also:
removeAllApplicationFonts(), addApplicationFont(), and addApplicationFontFromData().


standardSizes

public static java.util.List standardSizes()
Returns a list of standard font sizes.

See also:
smoothSizes(), and pointSizes().


supportsThreadedFontRendering

public static boolean supportsThreadedFontRendering()
Returns true if font rendering is supported outside the GUI thread, false otherwise. In other words, a return value of false means that all QPainter::drawText() calls outside the GUI thread will not produce readable output.

See also:
threads.html#painting-in-threads.


writingSystemName

public static java.lang.String writingSystemName(QFontDatabase.WritingSystem writingSystem)
Returns the names the writingSystem (e.g. for displaying to the user in a dialog).


writingSystemSample

public static java.lang.String writingSystemSample(QFontDatabase.WritingSystem writingSystem)
Returns a string with sample characters from writingSystem.


clone

public QFontDatabase clone()
This method is reimplemented for internal reasons

Overrides:
clone in class java.lang.Object