views:

106

answers:

1

Hi, i am looking for something similar to http://stackoverflow.com/questions/836218/organizing-gui-code, but for Python and PyQt4. Especially, I am looking at tips and examples of how to handle and store the configuration data, general state etc.

EDIT: I have found some hints regarding older versions under: http://www.commandprompt.com/community/pyqt/

+2  A: 

Here's an overview of what we did w/some example names and their functions (we have a lot more in the actual app.)

ProjectFolder/
  - src/
     - my_project/
        - model/
           - preference.py # Interact with config params
           - api.py # Interact with our REST api

        - controller/
           - startup.py # Initialization code
           - login.py # Login a user

        - view/
           - main_window.py # Application container
           - login_widget.py # Login form

        - main.py # Application entry point.

  - tests/
      - my_project_tests/
          - model/ 
          - view/
          - controller/

  - resources/
      - ui/ # The files match basically one to one with the modules in the view directory.
        - main_window.ui
        - login_widget.ui
      - images/
        - logo.png

  - setup.py # Script to build the application (calling into the build_py2exe, etc. files below)
  - build_py2exe.py # Build the py2exe exe 
  - build_py2app.py # Build the py2app app
  - build_win_installer.iss # Package up the py2exe into an installer (Using inno setup).
  - build_dmg.py #Package up the py2app into a DMG

  - runtests.py # Run the tests
sdolan
Is this an open source application? Would you mind giving me a link to the source code?
data
@data: The application never actually made it into production, and I no longer work at the company. We talked about making it open source while I was there, but never got around to it. I'll ask them at lunch this week, but it will take me a couple of weeks before I'll have time for it. What I'll aim to do is abstract everything out into a base pyqt4 project, with our application as an example project.
sdolan