tests/logging/py_ext_0@py_ext/pyfile.xml
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Mon, 13 Aug 2018 18:29:07 +0300
changeset 2284 64bb520009f3
parent 1639 1953c268a194
permissions -rw-r--r--
Fix wxHMI example after upgrading wxGlade

Newer wxGlade generates code to initialize GridSizer's with empty
elements.

...
grid_sizer_1.Add(self.window_1, 1, wx.ALIGN_CENTER, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
...

That causes following traceback, if new buttons are added
to already full sizer.

PLCobject : Traceback (most recent call last):

File "./Beremiz_service.py", line 389, in default_evaluator
res = (tocall(*args, **kwargs), None)

File "/tmp/tmpQS8ct2/runtime_0.py", line 540, in _runtime_0_start
wx.MessageBox(_("Please stop PLC to close"))

File "/tmp/tmpQS8ct2/runtime_0.py", line 504, in Init
lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"),

File "/tmp/tmpQS8ct2/runtime_0.py", line 502, in <lambda>
lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons)

File "/tmp/tmpQS8ct2/runtime_0.py", line 461, in MakeButtonFunc
print sizer, btname

File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 14453, in Add
return _core_.Sizer_Add(*args, **kwargs)

PyAssertionError: C++ assertion "Assert failure" failed at
../src/common/sizer.cpp(1401) in DoInsert(): too many items (11 > 2*5)
in grid sizer (maybe you should omit the number of either rows or
columns?)


Tested with wxGlade version 0.8.3
Closes #41
<?xml version='1.0' encoding='utf-8'?>
<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <variables/>
  <globals>
    <xhtml:p><![CDATA[import threading, time

MyT = None
Stop = False

def StartLog():
    global MyT
    MyT=threading.Thread(target = DoLog)
    MyT.start()

def DoLog():
    global Stop
    while not Stop:
        PLCObject.LogMessage("Python side Logging (PLC is %s)"%PLCObject.PLCStatus)
        time.sleep(0.3)

def StopLog():
    global MyT,Stop
    Stop=True

_runtime_init.append(StartLog)
_runtime_cleanup.append(StopLog)
]]></xhtml:p>
  </globals>
  <init>
    <xhtml:p><![CDATA[]]></xhtml:p>
  </init>
  <cleanup>
    <xhtml:p><![CDATA[]]></xhtml:p>
  </cleanup>
  <start>
    <xhtml:p><![CDATA[]]></xhtml:p>
  </start>
  <stop>
    <xhtml:p><![CDATA[]]></xhtml:p>
  </stop>
</PyFile>