Advertisement
Guest User

custom button examples

a guest
Mar 15th, 2010
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import sys
  3. from PyQt4 import QtCore, QtGui
  4. from edytor import Ui_notatnik
  5.  
  6. class StartQT4(QtGui.QMainWindow):
  7. def __init__(self, parent=None):
  8. QtGui.QWidget.__init__(self, parent)
  9. self.ui = Ui_notatnik()
  10. self.ui.setupUi(self)
  11. QtCore.QObject.connect(self.ui.button_open,QtCore.SIGNAL("clicked()"), self.file_dialog)
  12. QtCore.QObject.connect(self.ui.button_save,QtCore.SIGNAL("clicked()"), self.file_save)
  13. QtCore.QObject.connect(self.ui.editor_window,QtCore.SIGNAL("textChanged()"), self.enable_save)
  14. def file_dialog(self):
  15. response = False
  16. # buttons texts
  17. SAVE = 'Save'
  18. DISCARD = 'Discard'
  19. CANCEL = 'Cancel'
  20. # if we have changes then ask about them
  21. if self.ui.button_save.isEnabled() and self.filename:
  22. message = QtGui.QMessageBox(self)
  23. message.setText('What to do about unsaved changes ?')
  24. message.setWindowTitle('Notepad')
  25. message.setIcon(QtGui.QMessageBox.Question)
  26. message.addButton(SAVE, QtGui.QMessageBox.AcceptRole)
  27. message.addButton(DISCARD, QtGui.QMessageBox.DestructiveRole)
  28. message.addButton(CANCEL, QtGui.QMessageBox.RejectRole)
  29. message.setDetailedText('Unsaved changes in file: ' + str(self.filename))
  30. message.exec_()
  31. response = message.clickedButton().text()
  32. # save file
  33. if response == SAVE:
  34. self.file_save()
  35. self.ui.button_save.setEnabled(False)
  36. # discard changes
  37. elif response == DISCARD:
  38. self.ui.button_save.setEnabled(False)
  39. # if we didn't cancelled show the file dialogue
  40. if response != CANCEL:
  41.  
  42.  
  43. if __name__ == "__main__":
  44. app = QtGui.QApplication(sys.argv)
  45. myapp = StartQT4()
  46. myapp.show()
  47. sys.exit(app.exec_()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement