simpleLabelDialog.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from PyQt4.QtGui import *
  2. from PyQt4.QtCore import *
  3. from lib import newButton, labelValidator
  4. BB = QDialogButtonBox
  5. class SimpleLabelDialog(QDialog):
  6. def __init__(self, text='', parent=None):
  7. super(SimpleLabelDialog, self).__init__(parent)
  8. self.edit = QLineEdit()
  9. self.edit.setText(text)
  10. self.edit.setValidator(labelValidator())
  11. self.edit.editingFinished.connect(self.postProcess)
  12. layout = QVBoxLayout()
  13. layout.addWidget(self.edit)
  14. bb = BB(BB.Ok | BB.Cancel, Qt.Horizontal, self)
  15. bb.accepted.connect(self.validate)
  16. bb.rejected.connect(self.reject)
  17. layout.addWidget(bb)
  18. self.setLayout(layout)
  19. def validate(self):
  20. if self.edit.text().trimmed():
  21. self.accept()
  22. def postProcess(self):
  23. self.edit.setText(self.edit.text().trimmed())
  24. def popUp(self, text='', pos=None):
  25. self.edit.setText(text)
  26. self.edit.setSelection(0, len(text))
  27. self.edit.setFocus(Qt.PopupFocusReason)
  28. if pos is not None:
  29. self.move(pos)
  30. return self.edit.text() if self.exec_() else None