dialogues.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. '''
  2. boites de dialogues
  3. '''
  4. from PyQt4.QtCore import SIGNAL, Qt, QString
  5. from PyQt4.QtGui import QDialog
  6. from lib.ui.ecran_altitude import Ui_alt_fenetre
  7. from lib.ui.ecran_confirmation import Ui_cfrm_fenetre
  8. from lib.ui.ecran_message import Ui_msg_fenetre
  9. from lib.ui.ecran_saisie import Ui_saisi_fenetre
  10. from lib.ui.ecran_vol import Ui_vol_fenetre
  11. def dmConfirmer(txt):
  12. """affiche une boite de dialogue pour demander confirmation d'une action"""
  13. ecran = EcranConfirmation()
  14. ecran.afficher(txt)
  15. ecran.show()
  16. ecran.exec_()
  17. retour = ecran.resultat()
  18. del ecran
  19. return retour
  20. class EcranConfirmation(QDialog):
  21. """boite de dialogue d'affichage de texte longs"""
  22. def __init__(self, parent=None):
  23. """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture"""
  24. super (EcranConfirmation, self).__init__()
  25. self._resultat = False
  26. self.createWidgets()
  27. def createWidgets(self):
  28. """construction de l'interface"""
  29. self.ui = Ui_cfrm_fenetre()
  30. self.ui.setupUi(self)
  31. self.connect(self.ui.cfrm_non, SIGNAL("clicked()"), self.non, Qt.UniqueConnection)
  32. self.connect(self.ui.cfrm_oui, SIGNAL("clicked()"), self.oui, Qt.UniqueConnection)
  33. def afficher(self, texte = "Confirmer?"):
  34. self.ui.cfrm_txt.setText(QString.fromUtf8(texte))
  35. def resultat(self):
  36. return self._resultat
  37. def oui(self):
  38. self._resultat = True
  39. self.done(1)
  40. def non(self):
  41. self.done(0)
  42. def dmSaisie(txt):
  43. """affiche une boite de dialogue dediee a la saisie d'un texte"""
  44. ecran = EcranSaisie()
  45. ecran.afficher(txt)
  46. ecran.show()
  47. ecran.exec_()
  48. retour = ecran.resultat()
  49. del ecran
  50. return retour
  51. class EcranSaisie(QDialog):
  52. """boite de dialogue d'affichage de texte longs"""
  53. def __init__(self, parent=None):
  54. """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture"""
  55. super (EcranSaisie, self).__init__()
  56. self._resultat = ""
  57. self.createWidgets()
  58. def createWidgets(self):
  59. """construction de l'interface"""
  60. self.ui = Ui_saisi_fenetre()
  61. self.ui.setupUi(self)
  62. self.connect(self.ui.saisi_annuler, SIGNAL("clicked()"), self.annuler, Qt.UniqueConnection)
  63. self.connect(self.ui.saisi_ok, SIGNAL("clicked()"), self.ok, Qt.UniqueConnection)
  64. self.ui.saisi_ok.setShortcut("Enter")
  65. self.ui.saisi_reponse.setFocus()
  66. def afficher(self, texte = "Saisir votre texte ici:"):
  67. self.ui.saisi_txt.setText(QString.fromUtf8(texte))
  68. def resultat(self):
  69. self._resultat = self.ui.saisi_reponse.text().toUtf8()
  70. return self._resultat
  71. def ok(self):
  72. self.done(1)
  73. def annuler(self):
  74. self._resultat = ""
  75. self.done(0)
  76. def dmMessage(txt):
  77. """affiche une msgbox"""
  78. ecran = EcranMessage()
  79. ecran.afficher(txt)
  80. ecran.show()
  81. ecran.exec_()
  82. del ecran
  83. class EcranMessage(QDialog):
  84. """boite de dialogue d'affichage de texte longs"""
  85. def __init__(self, parent=None):
  86. """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture"""
  87. super (EcranMessage, self).__init__()
  88. self._resultat = ""
  89. self.createWidgets()
  90. def createWidgets(self):
  91. """construction de l'interface"""
  92. self.ui = Ui_msg_fenetre()
  93. self.ui.setupUi(self)
  94. self.connect(self.ui.msg_ok, SIGNAL("clicked()"), self.ok, Qt.UniqueConnection)
  95. self.ui.msg_ok.setShortcut("Enter")
  96. def afficher(self, texte = "Message"):
  97. self.ui.msg_txt.majTexte(texte)
  98. def ok(self):
  99. self.done(1)
  100. def dmVol(actuelle, maxi = None):
  101. fen = EcranVol(actuelle, maxi)
  102. fen.show()
  103. fen.exec_()
  104. return fen.resultat()
  105. class EcranVol(QDialog):
  106. """interface de gestion du vol d'un pion
  107. renvoie la nouvelle altitude du pion"""
  108. def __init__(self, actuelle = 0, maxi = None, parent=None):
  109. """initialisation de la fenetre"""
  110. super (EcranVol, self).__init__(parent)
  111. self._resultat = 0
  112. self.createWidgets()
  113. self.ouverture(actuelle, maxi)
  114. def createWidgets(self):
  115. """construction de l'interface"""
  116. #construction de l'interface
  117. self.ui = Ui_vol_fenetre()
  118. self.ui.setupUi(self)
  119. self.connect(self.ui.vol_ok, SIGNAL("clicked()"), self.ok)
  120. self.ui.vol_valeur.selectAll()
  121. def ouverture(self, actuelle, maxi):
  122. """ouverture en mode edition"""
  123. if maxi != None:
  124. self.ui.vol_valeur.setMaximum(maxi)
  125. if actuelle > maxi: actuelle = maxi
  126. self.ui.vol_valeur.setValue(actuelle)
  127. self._resultat = actuelle
  128. def resultat(self):
  129. return self._resultat
  130. def ok(self):
  131. """enregistre le terrain cree/edite"""
  132. self._resultat = self.ui.vol_valeur.value()
  133. self.done(1)
  134. def keyPressEvent(self, event):
  135. if event.key() == Qt.Key_Return:
  136. self.ok()
  137. def dmAltitude(maxi = None):
  138. fen = EcranAltitude(maxi)
  139. fen.show()
  140. fen.exec_()
  141. return fen.resultat()
  142. class EcranAltitude(QDialog):
  143. """interface de gestion du vol d'un pion
  144. renvoie la nouvelle altitude du pion"""
  145. def __init__(self, maxi, parent=None):
  146. """initialisation de la fenetre"""
  147. super (EcranAltitude, self).__init__(parent)
  148. self._resultat = 0
  149. self._maxi = maxi
  150. self.createWidgets()
  151. def createWidgets(self):
  152. """construction de l'interface"""
  153. #construction de l'interface
  154. self.ui = Ui_alt_fenetre()
  155. self.ui.setupUi(self)
  156. if self._maxi:
  157. self.ui.alt_valeur.setMaximum(self._maxi)
  158. self.connect(self.ui.alt_ok, SIGNAL("clicked()"), self.ok)
  159. self.ui.alt_valeur.selectAll()
  160. def resultat(self):
  161. return self._resultat
  162. def ok(self):
  163. """enregistre le terrain cree/edite"""
  164. self._resultat = self.ui.alt_valeur.value()
  165. self.done(1)