You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pytqt/examples/fonts.py

150 lines
5.3 KiB

#!/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 TQt. This example
** program may be used, distributed and modified without limitation.
**
***************************************************************************"""
import sys
from PyTQt.tqt import *
class Viewer( TQWidget ):
def __init__( self ):
TQWidget.__init__( self )
self.setFontSubstitutions()
greeting_heb = TQString.fromUtf8( b"\327\251\327\234\327\225\327\235" )
greeting_ru = TQString.fromUtf8( b"\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_en = "Hello"
self.greetings = TQTextView( self, "textview" )
self.greetings.setText( greeting_en + "\n" +
greeting_ru + "\n" +
greeting_heb )
self.fontInfo = TQTextView( self, "fontinfo" )
self.setDefault()
self.defaultButton = TQPushButton( "Default", self, "pushbutton1" )
self.defaultButton.setFont( TQFont( "times" ) )
self.connect( self.defaultButton, SIGNAL("clicked()"), self.setDefault )
self.sansSerifButton = TQPushButton( "Sans Serif", self, "pushbutton2" )
self.sansSerifButton.setFont( TQFont( "Helvetica", 12 ) )
self.connect( self.sansSerifButton, SIGNAL("clicked()"), self.setSansSerif )
self.italicsButton = TQPushButton( "Italics", self, "pushbutton3" )
self.italicsButton.setFont( TQFont( "lucida", 12, TQFont.Bold, True ) )
self.connect( self.italicsButton, SIGNAL("clicked()"), self.setItalics )
self.layout()
def setDefault( self ):
font = TQFont( "Bavaria" )
font.setPointSize( 24 )
font.setWeight( TQFont.Bold )
font.setUnderline( True )
self.greetings.setFont( font )
self.showFontInfo( font )
def setSansSerif( self ):
font = TQFont( "Newyork", 18 )
font.setStyleHint( TQFont.SansSerif )
self.greetings.setFont( font )
self.showFontInfo( font )
def setItalics( self ):
font = TQFont( "Tokyo" )
font.setPointSize( 32 )
font.setWeight( TQFont.Bold )
font.setItalic( True )
self.greetings.setFont( font )
self.showFontInfo( font )
def showFontInfo( self, font ):
info = TQFontInfo( font )
messageText = "Font requested: \"" + str(font.family()) + "\" " \
+ str(TQString.number( font.pointSize() )) + "pt<BR>" \
+ "Font used: \"" + str(info.family()) + "\" " \
+ str(TQString.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 = TQStringList()
self.substitutes.append( "Times" )
self.substitutes.append( "Mincho" )
self.substitutes.append( "Arabic Newspaper" )
self.substitutes.append( "crox" )
#TQFont.insertSubstitutions( "Bavaria", self.substitutes )
TQFont.insertSubstitution( "Bavaria", "Times" )
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.
def layout( self ):
textViewContainer = TQHBoxLayout()
textViewContainer.addWidget( self.greetings )
textViewContainer.addWidget( self.fontInfo )
buttonContainer = TQHBoxLayout()
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 = TQVBoxLayout( self )
container.addLayout( textViewContainer )
container.addLayout( buttonContainer )
self.resize( 700, 250 )
def main( args ):
app = TQApplication(sys.argv) # application object
textViewer = Viewer()
textViewer.setCaption( "TQt Example - Simple TQFont Demo" )
app.setMainWidget( textViewer )
textViewer.show()
app.exec_loop()
if __name__=="__main__":
main(sys.argv)