| Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |  | 
This example demonstrates the use of various TQFont member functions.
The main window API (viewer.h):
/* $Id: qt/viewer.h   3.3.8   edited May 27 2003 $ */
#ifndef VIEWER_H
#define VIEWER_H
#include <tqwidget.h>
#include <tqfont.h>
class TQTextView;
class TQPushButton;
class Viewer : public TQWidget
{
TQ_OBJECT
public:
    Viewer();
private slots:
    void setDefault();
    void setSansSerif();
    void setItalics();
private:
    void setFontSubstitutions();
    void layout();
    void showFontInfo( TQFont & );
    TQTextView * greetings;
    TQTextView * fontInfo;
    TQPushButton * defaultButton;
    TQPushButton * sansSerifButton;
    TQPushButton * italicsButton;
};
#endif
The main window implementation (viewer.cpp):
/* $Id: qt/viewer.cpp   3.3.8   edited May 27 2003 $ */
#include "viewer.h"
#include <tqstring.h>
#include <tqstringlist.h>
#include <tqtextview.h>
#include <tqpushbutton.h>
#include <ntqlayout.h>
Viewer::Viewer()
       :TQWidget()
{
    setFontSubstitutions();
    TQString greeting_heb = TQString::fromUtf8( "\327\251\327\234\327\225\327\235" );
    TQString greeting_ru = TQString::fromUtf8( "\320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265" );
    TQString greeting_en( "Hello" );
    greetings = new TQTextView( this, "textview" );
    greetings->setText( greeting_en + "\n" +
                       greeting_ru + "\n" +
                       greeting_heb );
    fontInfo = new TQTextView( this, "fontinfo" );
    setDefault();
    defaultButton = new TQPushButton( "Default", this,
                                                   "pushbutton1" );
    defaultButton->setFont( TQFont( "times" ) );
    connect( defaultButton, TQ_SIGNAL( clicked() ),
             this, TQ_SLOT( setDefault() ) );
    sansSerifButton = new TQPushButton( "Sans Serif", this,
                                                     "pushbutton2" );
    sansSerifButton->setFont( TQFont( "Helvetica", 12 ) );
    connect( sansSerifButton, TQ_SIGNAL( clicked() ),
             this, TQ_SLOT( setSansSerif() ) );
    italicsButton = new TQPushButton( "Italics", this,
                                                   "pushbutton3" );
    italicsButton->setFont( TQFont( "lucida", 12, TQFont::Bold, TRUE ) );
    connect( italicsButton, TQ_SIGNAL( clicked() ),
             this, TQ_SLOT( setItalics() ) );
    layout();
}
void Viewer::setDefault()
{
    TQFont font( "Bavaria" );
    font.setPointSize( 24 );
    font.setWeight( TQFont::Bold );
    font.setUnderline( TRUE );
    greetings->setFont( font );
    showFontInfo( font );
}
void Viewer::setSansSerif()
{
    TQFont font( "Newyork", 18 );
    font.setStyleHint( TQFont::SansSerif );
    greetings->setFont( font );
    showFontInfo( font );
}
void Viewer::setItalics()
{
    TQFont font( "Tokyo" );
    font.setPointSize( 32 );
    font.setWeight( TQFont::Bold );
    font.setItalic( TRUE );
    greetings->setFont( font );
    showFontInfo( font );
}
void Viewer::showFontInfo( TQFont & font )
{
    TQFontInfo info( font );
    TQString messageText;
    messageText = "Font requested: \"" +
                  font.family() + "\" " +
                  TQString::number( font.pointSize() ) + "pt<BR>" +
                  "Font used: \"" +
                  info.family() + "\" " +
                  TQString::number( info.pointSize() ) + "pt<P>";
    TQStringList substitutions = TQFont::substitutes( font.family() );
    if ( ! substitutions.isEmpty() ){
        messageText += "The following substitutions exist for " + \
                       font.family() + ":<UL>";
        TQStringList::Iterator i = substitutions.begin();
        while ( i != substitutions.end() ){
            messageText += "<LI>\"" + (* i) + "\"";
            i++;
        }
         messageText += "</UL>";
    } else {
        messageText += "No substitutions exist for " + \
                       font.family() + ".";
    }
    fontInfo->setText( messageText );
}
void Viewer::setFontSubstitutions()
{
    TQStringList substitutes;
    substitutes.append( "Times" );
    substitutes +=  "Mincho",
    substitutes << "Arabic Newspaper" << "crox";
    TQFont::insertSubstitutions( "Bavaria", substitutes );
    TQFont::insertSubstitution( "Tokyo", "Lucida" );
}
// For those who prefer to use TQt Designer for creating GUIs
// the following function might not be of particular interest:
// all it does is creating the widget layout.
void Viewer::layout()
{
    TQHBoxLayout * textViewContainer = new TQHBoxLayout();
    textViewContainer->addWidget( greetings );
    textViewContainer->addWidget( fontInfo );
    TQHBoxLayout * buttonContainer = new TQHBoxLayout();
    buttonContainer->addWidget( defaultButton );
    buttonContainer->addWidget( sansSerifButton );
    buttonContainer->addWidget( italicsButton );
    int maxButtonHeight = defaultButton->height();
    if ( sansSerifButton->height() > maxButtonHeight )
        maxButtonHeight = sansSerifButton->height();
    if ( italicsButton->height() > maxButtonHeight )
        maxButtonHeight = italicsButton->height();
    defaultButton->setFixedHeight( maxButtonHeight );
    sansSerifButton->setFixedHeight( maxButtonHeight );
    italicsButton->setFixedHeight( maxButtonHeight );
    TQVBoxLayout * container = new TQVBoxLayout( this );
    container->addLayout( textViewContainer );
    container->addLayout( buttonContainer );
    resize( 700, 250 );
}
main() program (simple-tqfont-demo.cpp):
/* $Id: qt/simple-tqfont-demo.cpp   3.3.8   edited May 27 2003 $ */
#include "viewer.h"
#include <ntqapplication.h>
int main( int argc, char **argv )
{
    TQApplication app( argc, argv );
    Viewer * textViewer = new Viewer();
    textViewer->setCaption( "TQt Example - Simple TQFont Demo" );
    app.setMainWidget( textViewer );
    textViewer->show();
    return app.exec();
}
See also TQFont Examples.
| Copyright © 2007 Trolltech | Trademarks | TQt 3.3.8 |