dialogues.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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_confirmation import Ui_cfrm_fenetre
  7. from lib.ui.ecran_message import Ui_msg_fenetre
  8. from lib.ui.ecran_saisie import Ui_saisi_fenetre
  9. def dmConfirmer(txt):
  10. """affiche une boite de dialogue pour demander confirmation d'une action"""
  11. ecran = EcranConfirmation()
  12. ecran.afficher(txt)
  13. ecran.show()
  14. ecran.exec_()
  15. retour = ecran.resultat()
  16. del ecran
  17. return retour
  18. class EcranConfirmation(QDialog):
  19. """boite de dialogue d'affichage de texte longs"""
  20. def __init__(self, parent=None):
  21. """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture"""
  22. super (EcranConfirmation, self).__init__()
  23. self._resultat = False
  24. self.createWidgets()
  25. def createWidgets(self):
  26. """construction de l'interface"""
  27. self.ui = Ui_cfrm_fenetre()
  28. self.ui.setupUi(self)
  29. self.connect(self.ui.cfrm_non, SIGNAL("clicked()"), self.non, Qt.UniqueConnection)
  30. self.connect(self.ui.cfrm_oui, SIGNAL("clicked()"), self.oui, Qt.UniqueConnection)
  31. def afficher(self, texte = "Confirmer?"):
  32. self.ui.cfrm_txt.setText(QString.fromUtf8(texte))
  33. def resultat(self):
  34. return self._resultat
  35. def oui(self):
  36. self._resultat = True
  37. self.done(1)
  38. def non(self):
  39. self.done(0)
  40. def dmSaisie(txt):
  41. """affiche une boite de dialogue dediee a la saisie d'un texte"""
  42. ecran = EcranSaisie()
  43. ecran.afficher(txt)
  44. ecran.show()
  45. ecran.exec_()
  46. retour = ecran.resultat()
  47. del ecran
  48. return retour
  49. class EcranSaisie(QDialog):
  50. """boite de dialogue d'affichage de texte longs"""
  51. def __init__(self, parent=None):
  52. """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture"""
  53. super (EcranSaisie, self).__init__()
  54. self._resultat = ""
  55. self.createWidgets()
  56. def createWidgets(self):
  57. """construction de l'interface"""
  58. self.ui = Ui_saisi_fenetre()
  59. self.ui.setupUi(self)
  60. self.connect(self.ui.saisi_annuler, SIGNAL("clicked()"), self.annuler, Qt.UniqueConnection)
  61. self.connect(self.ui.saisi_ok, SIGNAL("clicked()"), self.ok, Qt.UniqueConnection)
  62. self.ui.saisi_ok.setShortcut("Enter")
  63. self.ui.saisi_reponse.setFocus()
  64. def afficher(self, texte = "Saisir votre texte ici:"):
  65. self.ui.saisi_txt.setText(QString.fromUtf8(texte))
  66. def resultat(self):
  67. self._resultat = self.ui.saisi_reponse.text().toUtf8()
  68. return self._resultat
  69. def ok(self):
  70. self.done(1)
  71. def annuler(self):
  72. self._resultat = ""
  73. self.done(0)
  74. def dmMessage(txt):
  75. """affiche une msgbox"""
  76. ecran = EcranMessage()
  77. ecran.afficher(txt)
  78. ecran.show()
  79. ecran.exec_()
  80. del ecran
  81. class EcranMessage(QDialog):
  82. """boite de dialogue d'affichage de texte longs"""
  83. def __init__(self, parent=None):
  84. """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture"""
  85. super (EcranMessage, self).__init__()
  86. self._resultat = ""
  87. self.createWidgets()
  88. def createWidgets(self):
  89. """construction de l'interface"""
  90. self.ui = Ui_msg_fenetre()
  91. self.ui.setupUi(self)
  92. self.connect(self.ui.msg_ok, SIGNAL("clicked()"), self.ok, Qt.UniqueConnection)
  93. self.ui.msg_ok.setShortcut("Enter")
  94. def afficher(self, texte = "Message"):
  95. self.ui.msg_txt.majTexte(texte)
  96. def ok(self):
  97. self.done(1)