#!/usr/bin/python
# -*- coding: UTF-8 -*-


'''
    Programme tutoriel 6 sur l'utilisation de PyQT.
'''


#############################################################################
# Informations de versions
#############################################################################
__project__   = 'Applications Interface Graphique'
__author__    = 'Simon CHOLLET (simon.chollet@ens.fr)'
__modifiers__ = ''
__date__      = '18/06/2013'
__version__   = '1.0'


#############################################################################
# Importations
#############################################################################
# Module systeme : pour la gestion des arguments
import sys

# Module QtGUI de PyQT
from PyQt4 import QtGui


#############################################################################
# Definitions specifiques
#############################################################################


#############################################################################
# Declaration des classes / fonctions
#############################################################################
class CenterWin(QtGui.QWidget):
    '''
    Classe qui permet de definir une fenetre centree a l'ecran.
    -------------------------------------------------------------------------
    Attributs : Aucun.
    '''

    def __init__(self, parent=None):
        '''
        Constructeur
        ---------------------------------------------------------------------
        Arguments :
            - parent : Fenetre parente.
        ---------------------------------------------------------------------
        Retour : Aucun.
        '''

        # Appel du constructeur de la classe mere
        QtGui.QWidget.__init__(self, parent)

        # Reglage du titre de la fenetre
        self.setWindowTitle('center')
        # Reglage des dimensions de fenetre
        self.resize(250, 150)
        # Mise au centre de la fenetre,
        # appel de la methode de centrage
        self.center()

    def center(self):
        '''
        Methode qui permet de centrer la fenetre.
        ---------------------------------------------------------------------
        Arguments : Aucun.
        ---------------------------------------------------------------------
        Retour : Aucun.
        '''

        # Recuperation de la taille de l'affichage (ecran)
        screen = QtGui.QDesktopWidget().screenGeometry()
        # Recuperation de la taille de la fenetre
        size =  self.geometry()
        # Change la position de la fenetre
        self.move((screen.width() - size.width()) / 2,
                  (screen.height() - size.height()) / 2)


#############################################################################
# Execution ...
#############################################################################


#
#
# Fonction appelee lors de la demande
# d'execution de la classe/module
if __name__ == "__main__":
    # Creation de l'application
    app = QtGui.QApplication(sys.argv)

    # Creation de la fenetre
    center_win = CenterWin()

    # Affichage de la fenetre
    center_win.show()

    # Lancement de l'application graphique
    res = app.exec_()

    # Quitte le programme, avec le resultat de l'execution precedente
    sys.exit(res)
