<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Hi Johannes!</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Thanks for your reply!</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Unfortunately the plt.show() does not show anything when called from the processing plugin's "processAlgorithm()" function.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">When called from the python console, it works fine instead.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">I also detected that "fig.tight_layout()" stucks QGIS, when used in a processing plugin.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">But fortunately, in the meantime I've also detected, that I can save the whole plot to a PDF file by using "plt.savefig(pdf_name)".</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">And that's already a great benefit for me.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Best regards</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Mi., 15. Feb. 2023 um 09:39 Uhr schrieb Johannes Kröger (WhereGroup) <<a href="mailto:johannes.kroeger@wheregroup.com">johannes.kroeger@wheregroup.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hi Manfred,</p>
<p>not what you asked but: Are you sure you need a second
QMainWindow or maybe a non-modal QDialog or a QDockWidget would be
sufficient? Those might be easier to use. Or maybe even just using
the window that plt.show() creates?<br>
</p>
<p>Cheers, Hannes<br>
</p>
<div>Am 14.02.23 um 22:11 schrieb Manfred
Strahlhofer via QGIS-User:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Hello!</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">There
is a problem when using "matplotlib.backends" and drawing
plots when called from a QGIS processing plugin. I am using
the following test code:</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">
<div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:Consolas,"Courier New",monospace;font-weight:normal;font-size:14px;line-height:19px;white-space:pre-wrap"><div><span style="color:rgb(106,153,85)"># sample code below draws a canvas with a plot</span></div><div><span style="color:rgb(106,153,85)"># however closing this plot canvas crashes the plugin (cannot be restarted)</span></div><div><span style="color:rgb(106,153,85)"># and further qgis can't be closed with the X button</span></div><div><span style="color:rgb(106,153,85)"># originates from: <a href="https://matplotlib.org/stable/gallery/user_interfaces/embedding_in_qt_sgskip.html#sphx-glr-gallery-user-interfaces-embedding-in-qt-sgskip-py" target="_blank">https://matplotlib.org/stable/gallery/user_interfaces/embedding_in_qt_sgskip.html#sphx-glr-gallery-user-interfaces-embedding-in-qt-sgskip-py</a></span></div><div><span style="color:rgb(197,134,192)">import</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">sys</span></div><div><span style="color:rgb(197,134,192)">import</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">time</span></div>
<div><span style="color:rgb(197,134,192)">import</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">numpy</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(197,134,192)">as</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">np</span></div>
<div><span style="color:rgb(197,134,192)">from</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">matplotlib</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">backends</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">qt_compat</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(197,134,192)">import</span><span style="color:rgb(212,212,212)"> QtWidgets</span></div><div><span style="color:rgb(197,134,192)">from</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">matplotlib</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">backends</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">backend_qtagg</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(197,134,192)">import</span><span style="color:rgb(212,212,212)"> (</span></div><div><span style="color:rgb(212,212,212)"> FigureCanvas, NavigationToolbar2QT </span><span style="color:rgb(197,134,192)">as</span><span style="color:rgb(212,212,212)"> NavigationToolbar)</span></div><div><span style="color:rgb(197,134,192)">from</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">matplotlib</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">figure</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(197,134,192)">import</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">Figure</span></div>
<div><span style="color:rgb(86,156,214)">class</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">ApplicationWindow</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(78,201,176)">QtWidgets</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">QMainWindow</span><span style="color:rgb(212,212,212)">):</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">def</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(220,220,170)">__init__</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">):</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(78,201,176)">super</span><span style="color:rgb(212,212,212)">().</span><span style="color:rgb(220,220,170)">__init__</span><span style="color:rgb(212,212,212)">()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_main</span><span style="color:rgb(212,212,212)"> = QtWidgets.QWidget()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.setCentralWidget(</span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_main</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">layout</span><span style="color:rgb(212,212,212)"> = QtWidgets.QVBoxLayout(</span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_main</span><span style="color:rgb(212,212,212)">)</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">static_canvas</span><span style="color:rgb(212,212,212)"> = FigureCanvas(</span><span style="color:rgb(78,201,176)">Figure</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">figsize</span><span style="color:rgb(212,212,212)">=(</span><span style="color:rgb(181,206,168)">5</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">3</span><span style="color:rgb(212,212,212)">)))</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># Ideally one would use self.addToolBar here, but it is slightly</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># incompatible between PyQt6 and other bindings, so we just add the</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># toolbar as a plain widget instead.</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">layout</span><span style="color:rgb(212,212,212)">.addWidget(NavigationToolbar(</span><span style="color:rgb(156,220,254)">static_canvas</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">))</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">layout</span><span style="color:rgb(212,212,212)">.addWidget(</span><span style="color:rgb(156,220,254)">static_canvas</span><span style="color:rgb(212,212,212)">)</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">dynamic_canvas</span><span style="color:rgb(212,212,212)"> = FigureCanvas(</span><span style="color:rgb(78,201,176)">Figure</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">figsize</span><span style="color:rgb(212,212,212)">=(</span><span style="color:rgb(181,206,168)">5</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">3</span><span style="color:rgb(212,212,212)">)))</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">layout</span><span style="color:rgb(212,212,212)">.addWidget(</span><span style="color:rgb(156,220,254)">dynamic_canvas</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">layout</span><span style="color:rgb(212,212,212)">.addWidget(NavigationToolbar(</span><span style="color:rgb(156,220,254)">dynamic_canvas</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">))</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_static_ax</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(156,220,254)">static_canvas</span><span style="color:rgb(212,212,212)">.figure.subplots()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(78,201,176)">np</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">linspace</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(181,206,168)">0</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">10</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">501</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_static_ax</span><span style="color:rgb(212,212,212)">.plot(</span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">np</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">tan</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)">), </span><span style="color:rgb(206,145,120)">"."</span><span style="color:rgb(212,212,212)">)</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_dynamic_ax</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(156,220,254)">dynamic_canvas</span><span style="color:rgb(212,212,212)">.figure.subplots()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(78,201,176)">np</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">linspace</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(181,206,168)">0</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">10</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">101</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># Set up a Line2D.</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_line</span><span style="color:rgb(212,212,212)">, = </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_dynamic_ax</span><span style="color:rgb(212,212,212)">.plot(</span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">np</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">sin</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)"> + </span><span style="color:rgb(78,201,176)">time</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">time</span><span style="color:rgb(212,212,212)">()))</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_timer</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(156,220,254)">dynamic_canvas</span><span style="color:rgb(212,212,212)">.new_timer(</span><span style="color:rgb(181,206,168)">50</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_timer</span><span style="color:rgb(212,212,212)">.add_callback(</span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">_update_canvas</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_timer</span><span style="color:rgb(212,212,212)">.start()</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">def</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(220,220,170)">_update_canvas</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">):</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(78,201,176)">np</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">linspace</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(181,206,168)">0</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">10</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(181,206,168)">101</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># Shift the sinusoid as a function of time.</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_line</span><span style="color:rgb(212,212,212)">.set_data(</span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">np</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">sin</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">t</span><span style="color:rgb(212,212,212)"> + </span><span style="color:rgb(78,201,176)">time</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">time</span><span style="color:rgb(212,212,212)">()))</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">self</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">_line</span><span style="color:rgb(212,212,212)">.figure.canvas.draw()</span></div>
<div><span style="color:rgb(86,156,214)">def</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(220,220,170)">test_plot</span><span style="color:rgb(212,212,212)">():</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># Check whether there is already a running QApplication (e.g., if running</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)"># from an IDE).</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)">#qapp = QtWidgets.QApplication.instance() this stucks QGIS!</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)">#if not qapp:</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">qapp</span><span style="color:rgb(212,212,212)"> = QtWidgets.QApplication(</span><span style="color:rgb(78,201,176)">sys</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(156,220,254)">argv</span><span style="color:rgb(212,212,212)">) </span><span style="color:rgb(106,153,85)"># this stucks QGIS main window when the dialog's close button is pressed</span></div>
<div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">app</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(78,201,176)">ApplicationWindow</span><span style="color:rgb(212,212,212)">()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">app</span><span style="color:rgb(212,212,212)">.show()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">app</span><span style="color:rgb(212,212,212)">.activateWindow()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">app</span><span style="color:rgb(212,212,212)">.raise_()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">qapp</span><span style="color:rgb(212,212,212)">.exec()</span></div><div><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(106,153,85)">#app.exit()</span></div>
</div>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">When
using "<span style="color:rgb(0,0,0)">qapp =
QtWidgets.QApplication.instance()</span>", QGIS stucks
completely and no plot is shown ever.</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">When
using <span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">"qapp =
QtWidgets.QApplication(sys.argv)", the plot is shown and
updated correctly. But when pressing the "close button" of
the plot window, there are some strange effects (cannot
start a plugin again) and the "close button" of the QGIS
main window is disabled. Have to shut down qgis-bin.exe
from the windows task-manager.</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">I am using:</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">QGIS Version
3.24.1 Tisler</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">matplotlib 3.5.1<br>
</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">Windows 10<br>
</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)"><br>
</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">Anybody have a
solution for this problem?</span></span></div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">Thanks a lot.<br>
</span></span>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="background-color:rgb(255,255,0)"><span></span></span><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
QGIS-User mailing list
<a href="mailto:QGIS-User@lists.osgeo.org" target="_blank">QGIS-User@lists.osgeo.org</a>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-user</a>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-user</a>
</pre>
</blockquote>
<pre cols="72">--
Johannes Kröger / GIS-Entwickler/-Berater
**********************************************
FOSSGIS Konferenz
15.-18. März 2023 in Berlin
<a href="https://fossgis-konferenz.de/2023/" target="_blank">https://fossgis-konferenz.de/2023/</a>
WhereGroup-Beiträge auf der FOSSGIS
<a href="https://wheregroup.com/unternehmen/aktuelles/" target="_blank">https://wheregroup.com/unternehmen/aktuelles/</a>
**********************************************
WhereGroup GmbH
Grevenweg 89
20537 Hamburg
Germany
Tel: +49 (0)228 / 90 90 38 - 36
Fax: +49 (0)228 / 90 90 38 - 11
<a href="mailto:johannes.kroeger@wheregroup.com" target="_blank">johannes.kroeger@wheregroup.com</a>
<a href="http://www.wheregroup.com" target="_blank">www.wheregroup.com</a>
Geschäftsführer:
Olaf Knopp, Peter Stamm
Amtsgericht Bonn, HRB 9885
-------------------------------
</pre>
</div>
</blockquote></div>