Home >> Python >> PyQt4 Sixth


■PyQt4でのその他のコンポーネント(GUI部品)

	
import sys, time, thread, math
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class MyWindow(QWidget):
    button = None
    slider = None
    colorbutton = None
    colorname = [ "Red", "Green", "Blue", "Magenta", "Cyan", "Yellow" ]
    angle = 0
    scale = 1
    color = Qt.red

    def __init__( self, parent=None ):
        QWidget.__init__(self, parent )
		self.resize( 600, 400 )
		
        # 回転させるためのPushButtonを登録
        self.button = QPushButton( "Rotate", self )
        self.button.resize( 80, 30 )
        self.button.move( 50, 50 )
		QObject.connect( self.button, SIGNAL( "clicked( )" ), self.rotRect )
		
        # 大きさを変えるためのSliderを登録
        self.slider = QSlider( Qt.Horizontal, self )
        self.slider.resize( 200, 30 )
        self.slider.move( 200, 50 )
        self.slider.setMinimum( 10 )
        self.slider.setMaximum( 1000 )
        self.slider.setValue( 10 )
		QObject.connect( self.slider, SIGNAL( "sliderMoved(int)" ), self.setScale )
		
        # 色を変えるためのポップアップメニューを登録
        self.colorbutton = QPushButton( "Color", self )
        self.colorbutton.resize( 80, 30 )
        self.colorbutton.move( 420, 50 )
        menu = QMenu( self )
        actionlist = [ self.setRed, self.setGreen, self.setBlue, self.setMagenta,\
                  self.setCyan, self.setYellow ]
        for m in range( len( self.colorname) ):
            menu.addAction( self.colorname[ m ], actionlist[ m ] )
        self.colorbutton.setMenu( menu )
		
    # 描画のメソッド
    def paintEvent( self, event ):
        paint = QPainter( )
        paint.begin( self )
        paint.translate( 300, 200 )
        paint.rotate( self.angle )
        paint.scale( self.scale, self.scale )
        paint.fillRect( -50, -20, 100, 40, self.color )
        paint.end( )
		
    # 回転させるメソッド
    def rotRect( self ):
        self.angle += 10
        if self.angle >= 180: self.angle = 0
        self.update( )
		
    # 大きさを変えるメソッド
    def setScale( self ):
        value = self.slider.value( )
        self.scale = math.log10( value )
        self.update( )
		
    # 色を変えるメソッド
    def setRed( self ):
        self.color = Qt.red; self.update( )

    def setGreen( self ):
        self.color = Qt.green; self.update( )

    def setBlue( self ):
        self.color = Qt.blue; self.update( )

    def setMagenta( self ):
        self.color = Qt.magenta; self.update( )
        
    def setCyan( self ):
        self.color = Qt.cyan; self.update( )
        
    def setYellow( self ):
        self.color = Qt.yellow; self.update( )

app = QApplication( sys.argv )
mywindow = MyWindow( )
mywindow.show( )
sys.exit( app.exec_( ) )

	
PyQt4 Fifth Python PyOSG First