[Qgis-developer] Qgis standalone apps

Giuseppe Sucameli brush.tyler at gmail.com
Wed Sep 15 08:16:16 EDT 2010


Hi Massimo,
as I wrote to you:

class MainApp(QApplication):
    def __init__(self, args):
        QApplication.__init__(self, args)
        wdg = MyWdg()
        wdg.show()
        self.exec_()

if __name__ == "__main__":
        import sys
    app = MainApp(sys.args)

That is, you missed the "args" variable ;)
Cheers.


On Wed, Sep 15, 2010 at 1:52 PM, Massimo Di Stefano <massimodisasha at yahoo.it
> wrote:

> sorry, i correct the link to the code i'm tring.
> my apologize :-/
>
> this one should work :
>
> http://www.geofemengineering.it/data/qgistry.py
>
>
> Il giorno 15/set/2010, alle ore 12.21, Massimo Di Stefano ha scritto:
>
> Hello All,
>
>
> i'm tring to apply the changes you suggest me .. but with no good results
> (again my fault)
>
> i tried to change the code to :
>
> http://www.geogemengineering.it/data/qgistry.py
>
> but i got :
>
> python /qgistry.py
> Traceback (most recent call last):
>   File "/qgistry.py", line 68, in <module>
>     app = MainApp()
>   File "/qgistry.py", line 61, in __init__
>     QApplication.__init__(self)
> TypeError: arguments did not match any overloaded call:
>   QApplication(list-of-str): not enough arguments
>   QApplication(list-of-str, bool): not enough arguments
>   QApplication(list-of-str, QApplication.Type): not enough arguments
>
>
> can you help me to have it running ?
>
> thanks a lot !!!
>
> Massimo.
>
>
> Il giorno 10/set/2010, alle ore 02.07,
> qgis-developer-request at lists.osgeo.org ha scritto:
>
> Hi Massimo,
>
> On Fri, Sep 10, 2010 at 12:10 AM, Massimo Di Stefano <
> massimodisasha at yahoo.it> wrote:
>
> Hi All,
>
>
> i'm tring to start some coding on the qgis api
>
> i'm on osx 10.6.4 running qgis 1.6
>
>
> following the example from :
>
>
>
>
> http://mapserver.sk/~wonder/qgis/html<http://mapserver.sk/%7Ewonder/qgis/html>
> /canvas.html#using-map-tools-with-canvas<
> http://mapserver.sk/%7Ewonder/qgis/html/canvas.html#using-map-tools-with-canvas
> >
>
>
> it works fine if i call it from a qgis-python shell
>
>
> but i tried to make small changes to have it running as a standalone
>
> application,
>
>
> i eliminated the "layer" from the init line :
>
>
> QMainWindow.__init__(self)
>
>
> used a custom extent :
>
>
> self.canvas.setExtent('15.1845401903089403,40.6214856769878665 :
>
> 15.2339879807105998,40.6477493100907381')
>
>
> and commented out the line :
>
>
> #self.canvas.setLayerSet( [ QgsMapCanvasLayer(layer) ] )
>
>
> then from a standard python shell, i tried :
>
>
> import mywnd
>
> dir(mywnd)
>
> ['MyWnd', 'QAction', 'QMainWindow', 'QString', 'QgisInterface',
>
> 'QgsAnnotationItem', 'QgsColorButton', 'QgsColorButtonV2',
>
> 'QgsComposerView', 'QgsEncodingFileDialog', 'QgsFormAnnotationItem',
>
> 'QgsGenericProjectionSelector', 'QgsLegendInterface', 'QgsMapCanvas',
>
> 'QgsMapCanvasItem', 'QgsMapCanvasLayer', 'QgsMapCanvasMap',
>
> 'QgsMapCanvasSnapper', 'QgsMapOverviewCanvas', 'QgsMapTip', 'QgsMapTool',
>
> 'QgsMapToolEmitPoint', 'QgsMapToolPan', 'QgsMapToolZoom',
>
> 'QgsMessageViewer', 'QgsProjectBadLayerGuiHandler',
> 'QgsProjectionSelector',
>
> 'QgsQuickPrint', 'QgsRendererV2PropertiesDialog', 'QgsRendererV2Widget',
>
> 'QgsRubberBand', 'QgsStyleV2ManagerDialog', 'QgsSymbolLayerV2Widget',
>
> 'QgsSymbolV2PropertiesDialog', 'QgsSymbolV2SelectorDialog',
>
> 'QgsTextAnnotationItem', 'QgsVertexMarker', 'Qt', 'SIGNAL', '__builtins__',
>
> '__doc__', '__file__', '__name__', '__package__']
>
> w = mywnd.MyWnd()
>
> QWidget: Must construct a QApplication before a QPaintDevice
>
> Abort trap
>
>
> the MyWnd is a QWidget.
>
> You must create a QApplication instance and only after this you can
> show widgets within it.
>
> Here an example (main.py):
>
>
> from PyQt4.QtGui import QApplication
> from mywdg import MyWdg
>
> class MainApp(QApplication):
>    def __init__(self, args):
>        QApplication.__init__(self, args)
>        wdg = MyWdg()
>        wdg.show()
>        self.exec_()
>
> if __name__ == "__main__":
>        import sys
>    app = MainApp(sys.args)
>
>
> Then open a terminal and run: python main.py
> and if all went fine you can see your widget.
>
> Cheers.
>
>
>
>  it give me a python crash ... obviously i'm missing something basilar,
>
>
> have you any clue on what i need to change to have the example working
>
> outside qgis ?
>
>
>
> thanks a lot !!!
>
>
> regards,
>
>
> Massimo
>
>
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>


-- 
Giuseppe Sucameli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/qgis-developer/attachments/20100915/fb13f453/attachment.html


More information about the Qgis-developer mailing list