summaryrefslogtreecommitdiffstats
path: root/python/pyqt/examples3/menu.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyqt/examples3/menu.py')
-rwxr-xr-xpython/pyqt/examples3/menu.py286
1 files changed, 0 insertions, 286 deletions
diff --git a/python/pyqt/examples3/menu.py b/python/pyqt/examples3/menu.py
deleted file mode 100755
index 820da942..00000000
--- a/python/pyqt/examples3/menu.py
+++ /dev/null
@@ -1,286 +0,0 @@
-#!/usr/bin/env python
-
-#****************************************************************************
-#** $Id$
-#**
-#** Copyright (C) 1992-1998 Troll Tech AS. All rights reserved.
-#**
-#** This file is part of an example program for PyQt. This example
-#** program may be used, distributed and modified without limitation.
-#**
-#*****************************************************************************/
-
-import sys, string
-from qt import *
-
-TRUE = 1
-FALSE = 0
-
-# XPM
-p1_xpm = [
-"16 16 3 1",
-" c None",
-". c #000000000000",
-"X c #FFFFFFFF0000",
-" ",
-" ",
-" .... ",
-" .XXXX. ",
-" .............. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX. ",
-" .............. ",
-" "
-]
-
-# XPM
-p2_xpm = [
-"16 16 3 1",
-" c None",
-". c #000000000000",
-"X c #FFFFFFFFFFFF",
-" ",
-" ...... ",
-" .XXX.X. ",
-" .XXX.XX. ",
-" .XXX.XXX. ",
-" .XXX..... ",
-" .XXXXXXX. ",
-" .XXXXXXX. ",
-" .XXXXXXX. ",
-" .XXXXXXX. ",
-" .XXXXXXX. ",
-" .XXXXXXX. ",
-" .XXXXXXX. ",
-" ......... ",
-" ",
-" "
-]
-
-# XPM
-p3_xpm = [
-"16 16 3 1",
-" c None",
-". c #000000000000",
-"X c #FFFFFFFFFFFF",
-" ",
-" ",
-" ......... ",
-" ........... ",
-" ........ .. ",
-" ........... ",
-" ........... ",
-" ........... ",
-" ........... ",
-" ...XXXXX... ",
-" ...XXXXX... ",
-" ...XXXXX... ",
-" ...XXXXX... ",
-" ......... ",
-" ",
-" "
-]
-
-
-# Auxiliary class to provide fancy menu items with different fonts.
-# Used for the "bold" and "underline" menu items in the options menu.
-
-class MyMenuItem( QCustomMenuItem ):
- def __init__( self, s, f ):
- QCustomMenuItem.__init__( self )
- self.string = s
- self.font = f
-
- def paint( self, p, cg, act, enabled, x, y, w, h ) :
- p.setFont ( self.font )
- p.drawText( x, y, w, h, Qt.AlignLeft | Qt.AlignVCenter | Qt.ShowPrefix | Qt.DontClip, self.string )
-
- def sizeHint( self ):
- return QFontMetrics( self.font ).size( Qt.AlignLeft | Qt.AlignVCenter | Qt.ShowPrefix | Qt.DontClip, self.string )
-
-
-# Implementation of MenuExample class
-
-class MenuExample( QWidget ):
- def __init__( self, parent=None, name=None ):
- QWidget.__init__( self, parent, name )
- self.p1 = QIconSet( QPixmap ( p1_xpm ) )
- self.p2 = QIconSet( QPixmap ( p2_xpm ) )
- self.p3 = QIconSet( QPixmap ( p3_xpm ) )
-
- self.printer = QPopupMenu( self )
- self.printer.insertTearOffHandle()
- self.printer.insertItem( "&Print to printer", self.printDoc )
- self.printer.insertItem( "Print to &file", self.printFile )
- self.printer.insertItem( "Print to fa&x", self.fax )
- self.printer.insertSeparator()
- self.printer.insertItem( "Printer &Setup", self.printerSetup )
-
- self.file = QPopupMenu( self )
- self.file.insertItem( self.p1, "&Open", self.open, Qt.CTRL+Qt.Key_O )
- self.file.insertItem( self.p2, "&New", self.news, Qt.CTRL+Qt.Key_N )
- self.file.insertItem( self.p3, "&Save", self.save, Qt.CTRL+Qt.Key_S )
- self.file.insertItem( "&Close", self.closeDoc, Qt.CTRL+Qt.Key_W )
- self.file.insertSeparator()
- self.file.insertItem( "&Print", self.printer, Qt.CTRL+Qt.Key_P )
- self.file.insertSeparator()
- self.file.insertItem( "E&xit", qApp, SLOT( "quit()" ), Qt.CTRL+Qt.Key_Q )
-
- self.edit = QPopupMenu( self )
- undoID = self.edit.insertItem( "&Undo", self.undo )
- redoID = self.edit.insertItem( "&Redo", self.redo )
- self.edit.setItemEnabled( undoID, FALSE )
- self.edit.setItemEnabled( redoID, FALSE )
-
- self.options = QPopupMenu( self )
- self.options.insertTearOffHandle()
- self.options.setCaption( "Options" )
- self.options.insertItem( "&Normal Font", self.normal )
- self.options.insertSeparator()
-
- self.options.polish() # adjust system settings
- f = self.options.font()
- f.setBold( TRUE )
- self.boldID = self.options.insertItem( MyMenuItem( "Bold", f ) )
- self.options.setAccel( Qt.CTRL+Qt.Key_B, self.boldID )
- self.options.connectItem( self.boldID, self.bold )
-
- f = self.options.font()
- f.setUnderline( TRUE )
- self.underlineID = self.options.insertItem( MyMenuItem( "Underline", f ) )
- self.options.setAccel( Qt.CTRL+Qt.Key_U, self.underlineID )
- self.options.connectItem( self.underlineID, self.underline )
-
- self.isBold = FALSE
- self.isUnderline = FALSE
- self.options.setCheckable( TRUE )
-
- self.help = QPopupMenu( self )
- self.help.insertItem( "&About", self.about, Qt.CTRL+Qt.Key_H )
- self.help.insertItem( "About &Qt", self.aboutQt )
-
- self.menu = QMenuBar( self )
- self.menu.insertItem( "&File", self.file )
- self.menu.insertItem( "&Edit", self.edit )
- self.menu.insertItem( "&Options", self.options )
- self.menu.insertSeparator()
- self.menu.insertItem( "&Help", self.help )
- self.menu.setSeparator( QMenuBar.InWindowsStyle )
-
- msg = QLabel( self )
- msg.setText( "A context menu is available.\n"
- "Invoke it by right-clicking or by"
- " pressing the 'context' button." )
- msg.setGeometry( 0, self.height() - 60, self.width(), 60 )
- msg.setAlignment( Qt.AlignCenter )
-
- self.label = QLabel( self )
- self.label.setGeometry( 20, self.rect().center().y()-20, self.width()-40, 40 )
- self.label.setFrameStyle( QFrame.Box | QFrame.Raised )
- self.label.setLineWidth( 1 )
- self.label.setAlignment( Qt.AlignCenter )
-
- self.connect( self, PYSIGNAL( "explain" ), self.label, SLOT( "setText(const QString &" ) )
-
- self.setMinimumSize( 100, 80 )
- self.setFocusPolicy( QWidget.ClickFocus )
-
- def contextMenuEvent(self, cmev):
- contextMenu = QPopupMenu( self )
- caption = QLabel( "<font color=darkblue><u><b>Context Menu</b></u></font>", self )
- caption.setAlignment( Qt.AlignCenter )
- contextMenu.insertItem( caption )
- contextMenu.insertItem( "&New", self.news, Qt.CTRL+Qt.Key_N )
- contextMenu.insertItem( "&Open...", self.open, Qt.CTRL+Qt.Key_O )
- contextMenu.insertItem( "&Save", self.save, Qt.CTRL+Qt.Key_S )
- submenu = QPopupMenu( self )
- submenu.insertItem( "&Print to printer", self.printDoc )
- submenu.insertItem( "Print to &file", self.printFile )
- submenu.insertItem( "Print to fa&x", self.fax )
- contextMenu.insertItem( "&Print", submenu )
- contextMenu.exec_loop( QCursor.pos() )
-
- def open( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Open selected", ) )
-
- def news( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/New selected", ) )
-
- def save( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Save selected", ) )
-
- def closeDoc( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Close selected", ) )
-
- def undo( self ):
- self.emit( PYSIGNAL( "explain" ), ( "Edit/Undo selected", ) )
-
- def redo( self ):
- self.emit( PYSIGNAL( "explain" ), ( "Edit/Redo selected", ) )
-
- def normal( self ):
- self.isBold = FALSE
- self.isUnderline = FALSE
- font = QFont()
- self.label.setFont( font )
- self.options.setItemChecked( self.boldID, self.isBold )
- self.options.setItemChecked( self.underlineID, self.isUnderline )
- self.emit( PYSIGNAL( "explain" ), ( "Options/Normal selected", ) )
-
- def bold( self ):
- self.isBold = not self.isBold
- font = QFont()
- font.setBold( self.isBold )
- font.setUnderline( self.isUnderline )
- self.label.setFont( font )
- self.options.setItemChecked( self.boldID, self.isBold )
- self.emit( PYSIGNAL( "explain" ), ( "Options/Bold selected", ) )
-
- def underline( self ):
- self.isUnderline = not self.isUnderline
- font = QFont()
- font.setBold( self.isBold )
- font.setUnderline( self.isUnderline )
- self.label.setFont( font )
- self.options.setItemChecked( self.underlineID, self.isUnderline )
- self.emit( PYSIGNAL("explain"), ( "Options/Underline selected", ))
-
- def about( self ):
- QMessageBox.about( self, "Qt Menu Example",
- "This example demonstrates simple use of Qt menus.\n"
- "You can cut and paste lines from it to your own\n"
- "programs." )
-
- def aboutQt( self ):
- QMessageBox.aboutQt( self, "Qt Menu Example" )
-
- def printDoc( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Printer/Print selected", ) )
-
- def printFile( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Printer/Print To File selected", ) )
-
- def fax( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Printer/Print To Fax selected", ) )
-
- def printerSetup( self ):
- self.emit( PYSIGNAL( "explain" ), ( "File/Printer/Printer Setup selected", ) )
-
- def resizeEvent( self, ev ):
- self.label.setGeometry( 20, self.rect().center().y()-20, self.width()-40, 40 )
-
-
-a = QApplication( sys.argv )
-m = MenuExample()
-
-m.setCaption( "Qt Examples - Menus" )
-a.setMainWidget( m )
-m.show()
-a.exec_loop()