diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-29 00:31:00 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-29 00:31:00 -0600 |
commit | b388516ca2691303a076a0764fd40bf7116fe43d (patch) | |
tree | 6f1615d1f12b325f4d1cd9c25d1519303794001a /examples3/fonts.py | |
download | pytqt-b388516ca2691303a076a0764fd40bf7116fe43d.tar.gz pytqt-b388516ca2691303a076a0764fd40bf7116fe43d.zip |
Initial import of python-qt3
Diffstat (limited to 'examples3/fonts.py')
-rwxr-xr-x | examples3/fonts.py | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/examples3/fonts.py b/examples3/fonts.py new file mode 100755 index 0000000..d3166ce --- /dev/null +++ b/examples3/fonts.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python + +"""************************************************************************** +** $Id: fonts.py,v 1.1 2003/07/01 14:18:37 phil Exp $ +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +***************************************************************************""" + +import sys +from qt import * + +class Viewer( QWidget ): + def __init__( self ): + QWidget.__init__( self ) + + self.setFontSubstitutions() + + #greeting_heb = QString.fromUtf8( "\327\251\327\234\327\225\327\235" ) + greeting_heb = unicode( '\327\251\327\234\327\225\327\235','utf8' ) + #greeting_ru = QString.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" ) + greeting_ru = unicode('\320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265','utf8' ) + greeting_en = "Hello" + + self.greetings = QTextView( self, "textview" ) + + self.greetings.setText( greeting_en + "\n" + + greeting_ru + "\n" + + greeting_heb ) + + self.fontInfo = QTextView( self, "fontinfo" ) + + self.setDefault() + + self.defaultButton = QPushButton( "Default", self, "pushbutton1" ) + self.defaultButton.setFont( QFont( "times" ) ) + self.connect( self.defaultButton, SIGNAL("clicked()"), self.setDefault ) + + self.sansSerifButton = QPushButton( "Sans Serif", self, "pushbutton2" ) + self.sansSerifButton.setFont( QFont( "Helvetica", 12 ) ) + self.connect( self.sansSerifButton, SIGNAL("clicked()"), self.setSansSerif ) + + self.italicsButton = QPushButton( "Italics", self, "pushbutton3" ) + self.italicsButton.setFont( QFont( "lucida", 12, QFont.Bold, True ) ) + self.connect( self.italicsButton, SIGNAL("clicked()"), self.setItalics ) + + self.layout() + + def setDefault( self ): + font = QFont( "Bavaria" ) + font.setPointSize( 24 ) + font.setWeight( QFont.Bold ) + font.setUnderline( True ) + + self.greetings.setFont( font ) + + self.showFontInfo( font ) + + def setSansSerif( self ): + font = QFont( "Newyork", 18 ) + font.setStyleHint( QFont.SansSerif ) + + self.greetings.setFont( font ) + + self.showFontInfo( font ) + + def setItalics( self ): + font = QFont( "Tokyo" ) + font.setPointSize( 32 ) + font.setWeight( QFont.Bold ) + font.setItalic( True ) + + self.greetings.setFont( font ) + + self.showFontInfo( font ) + + def showFontInfo( self, font ): + info = QFontInfo( font ) + + messageText = "Font requested: \"" + str(font.family()) + "\" " \ + + str(QString.number( font.pointSize() )) + "pt<BR>" \ + + "Font used: \"" + str(info.family()) + "\" " \ + + str(QString.number( info.pointSize() )) + "pt<P>" + + if not self.substitutes.isEmpty() : + messageText += "The following substitutions exist for " + \ + str(font.family()) + ":<UL>" + for i in self.substitutes : + messageText += "<LI>\"" + str(i) + "\"" + messageText += "</UL>"; + else : + messageText += "No substitutions exist for " + \ + str(font.family()) + "." + + self.fontInfo.setText( messageText ) + + def setFontSubstitutions( self ): + self.substitutes = QStringList() + self.substitutes.append( "Times" ) + self.substitutes.append( "Mincho" ) + self.substitutes.append( "Arabic Newspaper" ) + self.substitutes.append( "crox" ) + #QFont.insertSubstitutions( "Bavaria", self.substitutes ) + QFont.insertSubstitution( "Bavaria", "Times" ) + QFont.insertSubstitution( "Tokyo", "Lucida" ) + + # For those who prefer to use Qt Designer for creating GUIs + # the following function might not be of particular interest: + # all it does is creating the widget layout. + def layout( self ): + textViewContainer = QHBoxLayout() + textViewContainer.addWidget( self.greetings ) + textViewContainer.addWidget( self.fontInfo ) + + buttonContainer = QHBoxLayout() + buttonContainer.addWidget( self.defaultButton ) + buttonContainer.addWidget( self.sansSerifButton ) + buttonContainer.addWidget( self.italicsButton ) + + maxButtonHeight = self.defaultButton.height() + + if self.sansSerifButton.height() > maxButtonHeight : + maxButtonHeight = self.sansSerifButton.height() + if self.italicsButton.height() > maxButtonHeight : + maxButtonHeight = self.italicsButton.height() + + self.defaultButton.setFixedHeight( maxButtonHeight ) + self.sansSerifButton.setFixedHeight( maxButtonHeight ) + self.italicsButton.setFixedHeight( maxButtonHeight ) + + container = QVBoxLayout( self ) + container.addLayout( textViewContainer ) + container.addLayout( buttonContainer ) + + self.resize( 700, 250 ) + +def main( args ): + app = QApplication(sys.argv) # application object + + textViewer = Viewer() + textViewer.setCaption( "Qt Example - Simple QFont Demo" ) + app.setMainWidget( textViewer ) + textViewer.show() + + app.exec_loop() + +if __name__=="__main__": + main(sys.argv) |