[Qgis-developer] Qgis standalone apps
Massimo Di Stefano
massimodisasha at yahoo.it
Wed Sep 15 10:36:20 EDT 2010
Thanks Giuseppe,
it works fine, no crash on exit
all as aspected :-)
happy to start to code on qgis-python side :-)
my best regrads, and happy coding for the hackfest !!!
Ciao,
Massimo.
Il giorno 15/set/2010, alle ore 15.33, Giuseppe Sucameli ha scritto:
> oops... sys.argv :)
>
> On Wed, Sep 15, 2010 at 2:58 PM, Massimo Di Stefano <massimodisasha at yahoo.it> wrote:
> Hi Giuseppe,
>
> i tried with the "args" variable,
> i have :
>
>
> MacBook-Pro-15-di-sasha:~ sasha$ python /qgistry.py
> Traceback (most recent call last):
> File "/qgistry.py", line 66, in <module>
> app = MainApp(sys.args)
> AttributeError: 'module' object has no attribute 'args'
>
>
> so i tried also without the "args" value,
> what i'm missing ?
>
> thanks to help me,
>
> Massimo.
>
>
> Il giorno 15/set/2010, alle ore 14.16, Giuseppe Sucameli ha scritto:
>
>> 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/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
>
>
>
>
> --
> Giuseppe Sucameli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/qgis-developer/attachments/20100915/6653b96a/attachment.html
More information about the Qgis-developer
mailing list