#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' PyQt4 conversion of Qt Application Example The Application example shows how to implement a standard GUI application with menus, toolbars, and a status bar. The example itself is a simple text editor program built around QPlainTextEdit. NOTES: ===== This is based on an 'example' vs a tutorial however I'm splitting up the steps to make them easier to process. This first pass handles setting up the application class based on the examples C++ 'include' file: mainwindow.h. Empty slots and methods are defined creating skeleton code. The basic logic for building the application is laid out in the '__init__()' method. Class attributes will be created as the slots/methods are implemented. last modified: 2012-01-25 jg ref: http://developer.qt.nokia.com/doc/qt-4.8/mainwindows-application.html http://developer.qt.nokia.com/doc/qt-4.8/mainwindows-application-mainwindow-h.html ''' import sys from PyQt4.QtGui import (QApplication, QMainWindow, QPlainTextEdit) from PyQt4.QtCore import (pyqtSlot) class MainWindow(QMainWindow): # subclass QMainWindow def __init__(self, parent=None): # initiase base class super(MainWindow, self).__init__(parent) # create GUI self._createActions() self._createMenus() self._createToolBars() self._createStatusBar() # create central widget self._textEdit = QPlainTextEdit() self.setCentralWidget(self._textEdit) # connect signals/slots for event handling self._textEdit.document().contentsChanged.connect(self._documentWasModified) # establish initial conditions self._readSettings() self._setCurrentFile('') self.setUnifiedTitleAndToolBarOnMac(True) # overridden methods ------------------------------------------------------ def closeEvent(self, evt): pass # private slots ----------------------------------------------------------- @pyqtSlot() def _newFile(self): pass @pyqtSlot() def _open(self): pass @pyqtSlot() def _save(self): pass @pyqtSlot() def _saveAs(self): pass @pyqtSlot() def _about(self): pass @pyqtSlot() def _documentWasModified(self): pass # private methods --------------------------------------------------------- def _createActions(self): pass def _createMenus(self): pass def _createToolBars(self): pass def _createStatusBar(self): pass def _readSettings(self): pass def _writeSettings(self): pass def _maybeSave(self): pass def _loadFile(self, fname): pass def _saveFile(self, fname): pass def _setCurrentFile(self, fname): pass def _strippedName(self, fullFName): pass # main ======================================================================== def main(): app = QApplication(sys.argv) app.setOrganizationName("My Business") app.setApplicationName("Application Example") mw = MainWindow() mw.setWindowTitle("Application Example") mw.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
Page List
▼
Thursday, January 26, 2012
Qt 4.8 Application Example - Part 1
This is a walk through of a conversion from C++ to PyQt4 of the Qt Developer Network Application Example. The original example isn't broken up into parts the way the tutorials were; it is broken up here to make the conversion easier to follow.