User Tools

Site Tools


qt:pyqt_ide_options

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
qt:pyqt_ide_options [2011/04/17 09:41] mithatqt:pyqt_ide_options [2011/04/20 17:06] – [General IDE support] mithat
Line 22: Line 22:
  
 In almost all cases, getting good autocompletion/calltips requires adding api files, references to libs, or possibly both. In almost all cases, getting good autocompletion/calltips requires adding api files, references to libs, or possibly both.
 +
 +===== PyQt specific stuff =====
 +The following are needed specifically for easy PyQt4 development:
 +  * A wizard for starting a project that creates a default form and gives stuff the names that you want
 +  * A wizard that creates new forms, including the ''<formname>.ui'' file as well as a ''<formname>.py'' file that defines a ''<FormName>'' class.
 +  * A wizard for creating and an interface for managing ''*.qrc'' Qt resource files
  
 ===== The candidates ===== ===== The candidates =====
Line 52: Line 58:
 Even more than the above, but then you can roll-in things you want like Even more than the above, but then you can roll-in things you want like
   * Rope   * Rope
-One possibility is to make a Rope plugin for Monkey Studio. <-+One possibility is to make a Rope plugin for Monkey Studio. 
 ===== The results ===== ===== The results =====
-means good,+:-) means good,
 ~ means eh, ~ means eh,
 -- means available but sucks, -- means available but sucks,
 ✘ means not possible/not available, ✘ means not possible/not available,
-ext means manually added using external tool, +ext means handled externally automatically or by specifying a user command
-p means plugin available but not tested+
  
-==== Project support ====+==== Yes/No/Maybe? ==== 
 +^ IDE           ^ Y/N? ^ 
 +^ Eclipse+PyDev |  Yes    | 
 +^ Editra        |  maybe  | 
 +^ Eric 4        |  maybe  | 
 +^ Monkey Studio |  no     | 
 +^ Netbeans+Py    no     | 
 +^ Spyder        |  maybe  | 
 +^ Stani's IDE    ?      |
  
 +==== General IDE support ====
 +^ IDE           ^ UI    ^ survival    ^ project ^ hg    ^ install  ^ debugging (py)^
 +^ Eclipse+PyDev |  :-)~ |  :-)        |  :-)    |  p    |  --      |  :-)          |
 +^ Editra        |  :-)  |  ~          |  ✘      |  :-)  |  :-)~    |  ~ ext        |
 +^ Eric 4        |  :-)* |  ~          |  :-)    |  ✘    |  ~        :-)          |
 +^ Monkey Studio |  :-)  |  --          ?      |  ✘    |  :-)      ~ ext        |
 +^ Netbeans+Py    :-)  |  :-) (py ~) |  ?      |  :-)  |  :-)      --           |
 +^ Spyder        |  :-)  |  ~          |  ✘      |  ✘    |  :-)~    |  ~            |
 +^ Stani's IDE    ~    |  ~          |  ?      |  ?    |  ?        ?            |
  
-^ IDE           ^ Y/N? ^ UI  ^ survival  ^ IDE proj ^ PyQt proj ^ PyQt files ^ designer  ^ hg  ^ install  ^ debugging ^ +After significant manual intervention
-^ Eclipse+PyDev |  Y   | +~  |  + (py +) |  +        ✘        |  ?†        | + (both)‡ |  p  |  --      |  +        | +
-^ Editra        | maybe|  +  |  ~        |  --      |  ✘        |  t?        | :-\ (ext) |  +  |  +~      |  ~ ext    | +
-^ Eric 4        | maybe|  +|  ~        |  +        --        ?         | + (ext)    ✘  |  ~        +        | +
-^ Monkey Studio |  N    +  |  --        ?        +        |  +         | + (int)    ✘  |  +        ~ ext    | +
-^ Netbeans+Py    N    +  |  + (py ~) |  ?        ✘        |  ?         | + (ext)    +  |  +        --       | +
-^ Spyder        | maybe|  +  |  ~        |  --      |  ✘        |  t?        | :-\ (ext) |  ✘  |  +~      |  ~        | +
-^ Stani's IDE    ?    ~  |  ~        |  ?        ?        |  ?          ?        |  ?  |  ?        ?        |+
  
-After manual intervention\\+==== PyQt-specific project support ==== 
 +^ IDE           ^ PyQt proj ^ PyQt forms ^ qrc files ^ designer   ^ 
 +^ Eclipse+PyDev |  ✘        |  ?†        |  ~      | :-)‡       | 
 +^ Editra        |  ✘        |  t?        |  ✘        | !!! (ext)  | 
 +^ Eric 4        |  --        --††      |  :-)      | :-) (ext)  | 
 +^ Monkey Studio |  :-)      |  :-)        ✘        | :-) (int)  | 
 +^ Netbeans+Py    ✘        |  ?          ?        | :-) (ext)  | 
 +^ Spyder        |  ✘        |  t?        |  ✘        | !!! (ext)  | 
 +^ Stani's IDE    ?        |  ?          ?        |  ?         | 
 + 
 +* With Qt support from Nokia, has nice GUI for adding resources, but compile with pyrcc4 for python must be done manually. \\
 † Need to check what happens w/ Qt for Eclipse stuff from Nokia\\ † Need to check what happens w/ Qt for Eclipse stuff from Nokia\\
 ‡ With just Eclipse+PyDev, it's external. With the Qt for Eclipse stuff from Nokia, it's either.\\ ‡ With just Eclipse+PyDev, it's external. With the Qt for Eclipse stuff from Nokia, it's either.\\
 p means untested plugin available\\ p means untested plugin available\\
 t means template, not wizard\\ t means template, not wizard\\
-:-\ means it's ill on Linux because of MIME issues (works with GNOME and Xfce, not in others)\\ +!!! means it's ill on Linux because of MIME issues (works with GNOMEXfce (I think), and KDE (maybe)but not in others)\\ 
-==== Code writing support ====+†† has facility to add ''*.ui'' files (as XML) but not the corresponding ''*.py'' file.
  
-^ IDE           ^ autocomp. ^ calltips ^ nav. ^ refac. ^ check  ^ rt err. ^ +==== Python and PyQt code writing support ==== 
-^ Eclipse+PyDev |  +        |  ?       |    |  +     |  ~     |  +      + 
-^ Editra        |  +        |  ?       |  ✘   |  ✘      ~      ✘      | +^ IDE           ^ autocomp. ^ calltips ^ nav.   ^ refac. ^ check  ^ rt err. ^ 
-^ Eric 4        |  +      |  ?       |  ✘   |  +     |  +     |  ✘      | +^ Eclipse+PyDev |  :-)†     |  :-)†    |  :-)   |  :-)   |  ~     |  :-)    
-^ Monkey Studio |  ~        |  ?       |  ✘   |  ✘      ✘      ✘      | +^ Editra        |  :-)      |  :-)     |  ✘     |  ✘      ~      ✘      | 
-^ Netbeans+Py    --        ?       |    |  ~      ~      ~      | +^ Eric 4        |  :-)~*    |  :-)*†   |  :-)~‡ |  :-)   |  :-)   |  ✘      | 
-^ Spyder        |  +        |  ?       |    |  ✘     |  +     |  +      +^ Monkey Studio |  ~*       |  ~*      |  ✘     |  ✘      ✘      ✘      | 
-^ Stani's IDE    ?        |  ?         |  ?      ?      ?      |+^ Netbeans+Py    --        ?       |  :-)   |  ~      ~      ~      | 
 +^ Spyder        |  :-)†     |  :-)†    |  :-)   |  ✘     |  :-)   |  :-)    
 +^ Stani's IDE    ?        |  ?           |  ?      ?      ?      | 
 + 
 +* API based\\ 
 +† Needs custom config (adding lib to PYTHONPATH or tweaking Rope config or similar)\\ 
 +‡ With Eric4's Rope plugin you can select the identifier, and then do navigation with //Refactoring -> Query -> <an option>//, then double click on an entry (or assign a keyboard shortcut to bring up the dialog and enter to dismiss and goto.) 
 + 
 + 
 +I have some results in [[pyqt ide autocompletion testing]].
 ==== Comments ==== ==== Comments ====
 If project wizards were not available or were poopy, evaluations were made using {{:qt:evalpyqt.zip|this project}} that originated with Monkey Studio. If project wizards were not available or were poopy, evaluations were made using {{:qt:evalpyqt.zip|this project}} that originated with Monkey Studio.
Line 102: Line 137:
 It's freaking heavy and bit obtuse. Setting up is a multi-step process. Once set up, to get code completion to work, you need to add PyQt lib path to project. (This is true of a lot of the IDEs.) Even then, the code completion doesn't seem to always pick up variables declared in the file itself--unless it's just slow or requires a Ctrl+Space to make go. This needs testing. But once it gets going, it seems to be really nice. It's freaking heavy and bit obtuse. Setting up is a multi-step process. Once set up, to get code completion to work, you need to add PyQt lib path to project. (This is true of a lot of the IDEs.) Even then, the code completion doesn't seem to always pick up variables declared in the file itself--unless it's just slow or requires a Ctrl+Space to make go. This needs testing. But once it gets going, it seems to be really nice.
  
-There is no PyQt integration in PyDev and none available elsewhere it seems. No PyQt form creation automation, no PyQt project creation.+  * Enable/disable bracket completion? 
 + 
 +There is no PyQt integration in PyDev and none available elsewhere it seems. No PyQt form creation automation, no PyQt project creation. FIXME Does adding Qt stuff for CDT from Nokia and CDT help this?
  
 There are three installation options, and each will provide a different set of features (and startup time/RAM use?): There are three installation options, and each will provide a different set of features (and startup time/RAM use?):
Line 108: Line 145:
   * Eclipse + PyDev + Qt stuff for CDT from Nokia   * Eclipse + PyDev + Qt stuff for CDT from Nokia
   * Eclipse + PyDev + Qt stuff for CDT from Nokia + CDT   * Eclipse + PyDev + Qt stuff for CDT from Nokia + CDT
 +    * Has wizard for adding ''*.ui'' form files, but not the associated *.py (obviously)
 +    * Has wizard for adding ''*.qrc'' resource files along with a nice resource manager interface
  
 == Conclusion == == Conclusion ==
qt/pyqt_ide_options.txt · Last modified: 2011/04/20 20:44 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki