| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- """ensemble des widgets surchargés"""
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- ##from lib.outilsSvg import *
- class DmLabel(QLabel):
- """surcharge de QLabel"""
- def __init__(self, parent = None):
- super(DmLabel, self).__init__(parent)
- def majTexte(self, txt):
- self.clear()
- self.setText(QString.fromUtf8(txt))
- def chargerImage(self, chemin):
- self.clear()
- if len(chemin) > 0:
- pix = QPixmap(QString.fromUtf8(chemin))
- pix = pix.scaled(self.width(), self.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
- else:
- pix = QPixmap()
- self.setPixmap(pix)
- def texte(self):
- return str(self.text())
- class DmTextEdit(QTextEdit):
- def __init__(self, parent = None):
- super(DmTextEdit, self).__init__(parent)
- def majTexte(self, txt):
- self.clear()
- self.setText(QString.fromUtf8(txt))
- def texte(self):
- return str(self.text())
- class DmGraphicsView(QGraphicsView):
- """surcharge de QGraphicsView"""
- def __init__(self, parent = None):
- super(DmGraphicsView, self).__init__(parent)
- self.nbZoomActuel = 0
- def resizeEvent(self, event):
- super(DmGraphicsView, self).resizeEvent(event)
- self.emit(SIGNAL("resizeEvent()"))
- def wheelEvent(self, event):
- """zoom/dezoom avec la molette de la souris"""
- #on zoom/dezoom et on recentre sur la position du curseur
- zoom = 1.00
- if event.delta() > 0:
- if self.nbZoomActuel <= 10:
- self.nbZoomActuel += 1
- zoom = 1.25
- elif event.delta() < 0:
- if self.nbZoomActuel >= -10:
- zoom = 0.8
- self.nbZoomActuel -= 1
- if zoom != 0.00:
- self.scale(zoom, zoom)
- self.centerOn(self.mapToScene(event.pos()))
- event.accept() #pour considerer l'evenement comme resolu, sans ca les barres de defilement reagissent aussi
-
- class DmTableWidget(QTableWidget):
- """surcharge de QTableWidget"""
- def __init__(self, parent = None):
- super(DmTableWidget, self).__init__(parent)
- self.majEnCours = False
- def vider(self):
- """supprime toutes les lignes"""
- self.majEnCours = True
- while self.rowCount() > 0:
- self.removeRow(0)
- self.majEnCours = False
- def masquerColonneId(self):
- """masque la colonne en position 0 qui contient les identifiants"""
- self.setColumnWidth(0, 0)
-
- class DmTableBiblio(DmTableWidget):
- """table utilisee pour afficher les bibliotheques d'objets:
- terrains, decors, creatures"""
- def __init__(self, parent = None):
- super(DmTableBiblio, self).__init__(parent)
- self.fichier = ""
- self.masquerColonneId()
- def defFichier(self, fichier):
- """definit le fichier de sauvegarde qui la source des donnees de la table"""
- self.fichier = fichier
- def initAffichage(self):
- """fait les differents reglages relatifs a l'apparence"""
- self.setColumnWidth(0, 0)
- self.setIconSize(QSize(30,20))
- self.horizontalHeader().setStretchLastSection(True)
-
- def remplir(self):
- """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde"""
- dico = afficheSvg(self.fichier)
- self.majEnCours = True
- self.setSortingEnabled(False)
- index = 0
- for elt in dico:
- objet = dico[elt]
- self.insertRow(int(index))
-
- #code de l'objet
- self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
- #icone et nom
- icon = QIcon("img\\"+objet.icone())
- item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
- self.setItem(int(index),1,item)
-
- index += 1
- self.sizeHintForColumn(1)
- self.setSortingEnabled(True)
- self.sortItems(1)
- self.majEnCours = False
- def maj(self):
- self.vider()
- self.remplir()
- def actuel(self):
- """renvoie l'objet actuellement selectionne"""
- objet = None
- index = self.item(self.currentRow(), 0)
- if index > 0:
- objet = charger(self.fichier, str(index.text().toUtf8()))
- return objet
-
- class DmTableAttributsPi(DmTableWidget):
- """table utilisee pour afficher les attributs d'un pion dans le panneau Pi"""
- def __init__(self, parent = None):
- super(DmTableBiblio, self).__init__(parent)
- self.fichier = ""
- self.masquerColonneId()
- def defFichier(self, fichier):
- """definit le fichier de sauvegarde qui la source des donnees de la table"""
- self.fichier = fichier
- def initAffichage(self):
- """fait les differents reglages relatifs a l'apparence"""
- self.setColumnWidth(0, 0)
- self.setIconSize(QSize(30,20))
- self.horizontalHeader().setStretchLastSection(True)
-
- def remplir(self):
- """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde"""
- dico = afficheSvg(self.fichier)
- self.majEnCours = True
- self.setSortingEnabled(False)
- index = 0
- for elt in dico:
- objet = dico[elt]
- self.insertRow(int(index))
-
- #code de l'objet
- self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
- #icone et nom
- icon = QIcon("img\\"+objet.icone())
- item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
- self.setItem(int(index),1,item)
-
- index += 1
- self.sizeHintForColumn(1)
- self.setSortingEnabled(True)
- self.sortItems(1)
- self.majEnCours = False
- def maj(self):
- self.vider()
- self.remplir()
- def actuel(self):
- """renvoie l'objet actuellement selectionne"""
- objet = None
- index = self.item(self.currentRow(), 0)
- if index > 0:
- objet = charger(self.fichier, str(index.text().toUtf8()))
- return objet
- class DmTableMenu(QTableWidget):
- """table utilisee comme barre d'onglets verticale"""
- def __init__(self, parent = None):
- super(DmTableMenu, self).__init__(parent)
-
- def setItem(self, ligne, colonne, item):
- super(DmTableMenu, self).setItem(ligne, colonne, item)
- if ligne == 0:
- self.setItemSelected(item, True)
-
- class DmFrameInf_Combattant(QGroupBox):
- """frame d'information (combattant)"""
- def __init__(self, parent = None):
- super(DmFrameInf_Combattant, self).__init__(parent)
- def maj(self, combattant):
- self.setVisible((combattant != None))
- if combattant:
- self.findChild(DmLabel, "inf_pionNom").majTexte(combattant.nom)
- self.findChild(DmLabel, "inf_pionImage").chargerImage("img\\"+combattant.img.nomFichier)
- self.findChild(DmLabel, "inf_pionEffet").setVisible(False)
-
- class DmFrameInf_Decor(QGroupBox):
- """frame d'information (decor)"""
- def __init__(self, parent = None):
- super(DmFrameInf_Decor, self).__init__(parent)
- def maj(self, decor):
- self.setVisible((decor != None))
- if decor:
- self.findChild(DmLabel, "inf_decorNom").majTexte(decor.nom)
- self.findChild(DmLabel, "inf_decorImage").chargerImage("img\\"+decor.img.nomFichier)
- class DmFrameInf_Case(QGroupBox):
- """frame d'information (case)"""
- def __init__(self, parent = None):
- super(DmFrameInf_Case, self).__init__(parent)
- def maj(self, case):
- self.setVisible((case != None))
- if len(case.terrain.nom) > 0:
- self.findChild(DmLabel, "inf_caseTerrain").majTexte(case.terrain.nom)
- else:
- self.findChild(DmLabel, "inf_caseTerrain").majTexte("Case")
-
- self.findChild(DmLabel, "inf_caseCoord").majTexte("X: {} Y: {}".format(case.x, case.y))
- self.findChild(DmLabel, "inf_caseAltitude").majTexte("Alt.: {}".format(case.altitude))
-
- if case.effetActif != "":
- self.findChild(DmLabel, "inf_caseEffet").chargerImage("img\\"+case.imgEffet[case.effetActif])
- else:
- self.findChild(DmLabel, "inf_caseEffet").clear()
-
-
|