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 <qwidget.h> #include <qfont.h> class TQTextView; class TQPushButton; class Viewer : public TQWidget { Q_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 <qstring.h> #include <qstringlist.h> #include <qtextview.h> #include <qpushbutton.h> #include <qlayout.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, SIGNAL( clicked() ), this, SLOT( setDefault() ) ); sansSerifButton = new TQPushButton( "Sans Serif", this, "pushbutton2" ); sansSerifButton->setFont( TQFont( "Helvetica", 12 ) ); connect( sansSerifButton, SIGNAL( clicked() ), this, SLOT( setSansSerif() ) ); italicsButton = new TQPushButton( "Italics", this, "pushbutton3" ); italicsButton->setFont( TQFont( "lucida", 12, TQFont::Bold, TRUE ) ); connect( italicsButton, SIGNAL( clicked() ), this, 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-qfont-demo.cpp):
/* $Id: qt/simple-qfont-demo.cpp 3.3.8 edited May 27 2003 $ */ #include "viewer.h" #include <qapplication.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
|