Re: Re: WxImageButton on Linux
philippe DALET <[email protected]> Sun, 21 Apr 2019 23:48:17 +0200
| Newsgroups | gmane.comp.python.wxpython.devel |
|---|---|
| Message-ID | <CAPq9+MMM9wS9hVrKREvisGnpM1J2c6VY0GLz8q9q28fJ=LVutg@mail.gmail.com> |
--000000000000f63db40587114fd0 Content-Type: multipart/alternative; boundary="000000000000f63db10587114fce" --000000000000f63db10587114fce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello robin, This bug does not come necessarily from wxpython. With python 3.7.2 on Windows seven, this bug was already present. No more with python 3.7.3. Philippe. Le sam. 20 avr. 2019 =C3=A0 02:14, Robin Dunn <[email protected]> a =C3=A9c= rit : > On Friday, April 19, 2019 at 5:06:32 PM UTC-7, Robin Dunn wrote: >> >> On Friday, April 19, 2019 at 12:53:40 PM UTC-7, philippe DALET wrote: >>> >>> Yes, self._bitmap.getBits() is returning a wx.Bitmap. >>> It runs properly on windows. It seems that it expects another parameter= . >>> >>> Is it possible to debug with python, then in C with an IDE on linux ? >>> >> >> >> The C++ wrapper code where that exception is raised is identical on each >> platform and it hasn't yet gotten to any platform-dependent wxWidgets co= de, >> it's just type-checking the parameters to decide which wxBitmapButton >> constructor to call. So if it works on one platform and not another then= it >> must be differences in the inputs from the Python side of things. >> >> Ah, I just noticed something odd: >> >> > File >> "/usr/local/lib/python3.6/dist-packages/PythonCard/components/imagebutto= n.py", >> line 56, in __init__ >> > wx.BitmapButton.__init__(self, parent, id, >> self._bitmap.getBits(),pos, size, style, validator, name) >> > TypeError: *Control():* arguments did not match any overloaded call: >> >> Somehow it is not trying to call wx.BitmapButton.__init__ but >> wx.Control's __init__. Does PythonCard do any monkey-patching or somethi= ng >> that could be replacing wx.BitmapButton with wx.Control? >> > > > For example, I can duplicate the exception with code like this: > > wx.BitmapButton =3D wx.Control > class TestButton(wx.BitmapButton): > def __init__(self, parent, id, bmp, pos=3Dwx.DefaultPosition, > size=3Dwx.DefaultSize, style=3D0: > wx.BitmapButton.__init__(self, parent, id, bmp, pos, size, style) > > > -- > Robin > > -- > You received this message because you are subscribed to the Google Groups > "wxPython-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > --=20 You received this message because you are subscribed to the Google Groups "= wxPython-dev" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to [email protected]. For more options, visit https://groups.google.com/d/optout. --000000000000f63db10587114fce Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Hello robin,<div><br></d= iv><div>This bug=C2=A0does not come necessarily from wxpython.=C2=A0</div><= div><br></div><div>With python 3.7.2 on Windows seven, this bug was=C2=A0al= ready present. No more with python 3.7.3.</div><div><br></div><div>Philippe= .</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br= ></div><div><br></div><div><br></div><div><br></div><div><br></div></div></= div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at= tr">Le=C2=A0sam. 20 avr. 2019 =C3=A0=C2=A002:14, Robin Dunn <<a href=3D"= mailto:[email protected]">[email protected]</a>> a =C3=A9crit=C2=A0:<br>= </div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b= order-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">On= Friday, April 19, 2019 at 5:06:32 PM UTC-7, Robin Dunn wrote:<blockquote c= lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli= d rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">On Friday, April 19, = 2019 at 12:53:40 PM UTC-7, philippe DALET wrote:<blockquote class=3D"gmail_= quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,= 204);padding-left:1ex"><div dir=3D"ltr">Yes, self._bitmap.getBits() is retu= rning a wx.Bitmap.<div>It runs properly on windows. It seems that it expect= s another parameter.=C2=A0</div><div><br></div><div>Is it possible to debug= with python, then in C with an IDE on linux ?</div></div></blockquote><div= ><br></div><div><br></div><div>The C++ wrapper code where that exception is= raised is identical on each platform and it hasn't yet gotten to any p= latform-dependent wxWidgets code, it's just type-checking the parameter= s to=C2=A0 decide which wxBitmapButton constructor to call. So if it works = on one platform and not another then it must be differences in the inputs f= rom the Python side of things.</div><div><br></div><div>Ah, I just noticed = something odd:</div><div><br></div><div><div>>=C2=A0 File "/usr/loc= al/lib/python3.6/dist-packages/PythonCard/components/imagebutton.py", = line 56, in __init__</div><div>>=C2=A0 =C2=A0 =C2=A0wx.BitmapButton.__in= it__(self, parent, id, self._bitmap.getBits(),pos, size, style, validator, = name)</div><div>> TypeError: <b><font color=3D"#ff0000">Control():</font= ></b> arguments did not match any overloaded call:</div></div><div><br></di= v><div>Somehow it is not trying to call wx.BitmapButton.__init__ but wx.Con= trol's __init__. Does PythonCard do any monkey-patching or something th= at could be replacing wx.BitmapButton with wx.Control?</div></div></blockqu= ote><div><br></div><div><br></div><div>For example, I can duplicate the exc= eption with code like this:</div><div><br></div><div><div><font face=3D"cou= rier new, monospace">wx.BitmapButton =3D wx.Control</font></div><div><font = face=3D"courier new, monospace">class TestButton(wx.BitmapButton):</font></= div><div><font face=3D"courier new, monospace">=C2=A0 =C2=A0 def __init__(s= elf, parent, id, bmp, pos=3Dwx.DefaultPosition, size=3Dwx.DefaultSize, styl= e=3D0:</font></div><div><span style=3D"font-family:"courier new",= monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 wx.BitmapButton.__init__(self, paren= t, id, bmp, pos, size, style)</span><br></div></div><div><font face=3D"cour= ier new, monospace"><br></font></div><div>=C2=A0</div><div>--</div><div>Rob= in</div><div><br></div></div> <p></p> -- <br> You received this message because you are subscribed to the Google Groups &= quot;wxPython-dev" group.<br> To unsubscribe from this group and stop receiving emails from it, send an e= mail to <a href=3D"mailto:[email protected]" target= =3D"_blank">[email protected]</a>.<br> For more options, visit <a href=3D"https://groups.google.com/d/optout" targ= et=3D"_blank">https://groups.google.com/d/optout</a>.<br> </blockquote></div> <p></p> -- <br /> You received this message because you are subscribed to the Google Groups &= quot;wxPython-dev" group.<br /> To unsubscribe from this group and stop receiving emails from it, send an e= mail to <a href=3D"mailto:[email protected]">wxPyth= [email protected]</a>.<br /> For more options, visit <a href=3D"https://groups.google.com/d/optout">http= s://groups.google.com/d/optout</a>.<br /> --000000000000f63db10587114fce-- --000000000000f63db40587114fd0 Content-Type: text/x-python; charset="US-ASCII"; name="imagebutton.py" Content-Disposition: attachment; filename="imagebutton.py" Content-Transfer-Encoding: base64 Content-ID: <f_jurgkv140> X-Attachment-Id: f_jurgkv140 DQoiIiINCl9fdmVyc2lvbl9fID0gIiRSZXZpc2lvbjogMS4xOSAkIg0KX19kYXRlX18gPSAiJERh dGU6IDIwMDQvMDgvMTEgMDE6NTg6MDMgJCINCiIiIg0KDQppbXBvcnQgd3gNCmZyb20gLi4gaW1w b3J0IGV2ZW50LCBncmFwaGljLCB3aWRnZXQNCmZyb20gLiBpbXBvcnQgYnV0dG9uLCBpbWFnZQ0K DQoNCmNsYXNzIEltYWdlQnV0dG9uU3BlYyggd2lkZ2V0LldpZGdldFNwZWMgKToNCiAgICBkZWYg X19pbml0X18oc2VsZik6DQogICAgICAgIGV2ZW50cyA9IFtidXR0b24uQnV0dG9uTW91c2VDbGlj a0V2ZW50XQ0KICAgICAgICBhdHRyaWJ1dGVzID0gew0KICAgICAgICAgICAgJ2ZpbGUnIDogeyAn cHJlc2VuY2UnIDogJ29wdGlvbmFsJywgJ2RlZmF1bHQnOicnIH0sDQogICAgICAgICAgICAnYm9y ZGVyJyA6IHsgJ3ByZXNlbmNlJyA6ICdvcHRpb25hbCcsICdkZWZhdWx0JyA6ICd0cmFuc3BhcmVu dCcsICd2YWx1ZXMnIDogWyAnM2QnLCAndHJhbnNwYXJlbnQnLCAnbm9uZScgXSB9LA0KICAgICAg ICAgICAgJ3NpemUnIDogeyAncHJlc2VuY2UnIDogJ29wdGlvbmFsJywgJ2RlZmF1bHQnIDogWyAt MSwgLTEgXSB9LA0KICAgICAgICB9DQogICAgICAgIHdpZGdldC5XaWRnZXRTcGVjLl9faW5pdF9f KCBzZWxmLCAnSW1hZ2VCdXR0b24nLCAnSW1hZ2UnLCBldmVudHMsIGF0dHJpYnV0ZXMgKQ0KICAg ICAgICANCmRlZiBtYWtlQnVmKHcsIGgsIGJwcD0xLCBpbml0PTApOg0KICAgICJNYWtlIGEgc2lt cGxlIGJ1ZmZlciBmb3IgdGVzdGluZyB3aXRoIg0KICAgIGJ1ZiA9IGJ5dGVhcnJheShbaW5pdF0g KiAodypoKmJwcCkpDQogICAgcmV0dXJuIGJ1Zg0KDQpjbGFzcyBJbWFnZUJ1dHRvbihpbWFnZS5J bWFnZSwgd3guQml0bWFwQnV0dG9uKToNCiAgICAiIiINCiAgICBBbiBpbWFnZSB0aGF0IHBsYXlz IHRoZSByb2xlIG9mIGEgYnV0dG9uLg0KICAgICIiIg0KICAgIA0KICAgIF9zcGVjID0gSW1hZ2VC dXR0b25TcGVjKCkNCg0KICAgIGRlZiBfX2luaXRfXyggc2VsZiwgYVBhcmVudCwgYVJlc291cmNl ICkgOg0KICAgICAgICBzZWxmLl9ib3JkZXIgPSBhUmVzb3VyY2UuYm9yZGVyDQogICAgICAgIHNl bGYuX2JpdG1hcCA9IGdyYXBoaWMuQml0bWFwKGFSZXNvdXJjZS5maWxlLCBhUmVzb3VyY2Uuc2l6 ZSkNCiAgICAgICAgc2VsZi5fZmlsZSA9IGFSZXNvdXJjZS5maWxlDQoNCiAgICAgICAgc2VsZi5f c2l6ZSA9IHR1cGxlKGFSZXNvdXJjZS5zaXplKQ0KICAgICAgICB3ID0gYVJlc291cmNlLnNpemVb MF0NCiAgICAgICAgaWYgdyA9PSAtMjoNCiAgICAgICAgICAgIHcgPSBzZWxmLl9iaXRtYXAuZ2V0 V2lkdGgoKQ0KICAgICAgICBoID0gYVJlc291cmNlLnNpemVbMV0NCiAgICAgICAgaWYgaCA9PSAt MjoNCiAgICAgICAgICAgIGggPSBzZWxmLl9iaXRtYXAuZ2V0SGVpZ2h0KCkNCiAgICAgICAgc2l6 ZSA9ICh3LCBoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAg ICAgICAgI3ByaW50KCB0eXBlIChzZWxmLl9iaXRtYXApKQ0KICAgICAgICBwYXJlbnQ9YVBhcmVu dA0KICAgICAgICBpZD13aWRnZXQubWFrZU5ld0lkKGFSZXNvdXJjZS5pZCkNCiAgICAgICAgcG9z PXd4LlBvaW50KGFSZXNvdXJjZS5wb3NpdGlvblswXSxhUmVzb3VyY2UucG9zaXRpb25bMV0pDQog ICAgICAgIHNpemU9d3guU2l6ZSh3LGgpDQogICAgICAgIHN0eWxlPXd4Lk5PX0ZVTExfUkVQQUlO VF9PTl9SRVNJWkUgfCB3eC5DTElQX1NJQkxJTkdTDQogICAgICAgIHZhbGlkYXRvciA9IHd4LkRl ZmF1bHRWYWxpZGF0b3INCiAgICAgICAgbmFtZT1hUmVzb3VyY2UubmFtZSAgDQoNCiAgICAgICAg d3guQml0bWFwQnV0dG9uLl9faW5pdF9fKHNlbGYsIHBhcmVudCwgaWQsIHNlbGYuX2JpdG1hcC5n ZXRCaXRzKCkscG9zLCBzaXplLCBzdHlsZSwgdmFsaWRhdG9yLCBuYW1lKQ0KDQogICAgICAgIHdp ZGdldC5XaWRnZXQuX19pbml0X18oc2VsZixhUGFyZW50LCBhUmVzb3VyY2UgKQ0KICAgICAgICBz ZWxmLkJpbmQod3guRVZUX1dJTkRPV19ERVNUUk9ZLCBzZWxmLl9PbkRlc3Ryb3kpDQoNCiAgICAg ICAgaWYgYVJlc291cmNlLmJvcmRlciA9PSAndHJhbnNwYXJlbnQnOg0KICAgICAgICAgICAgc2Vs Zi5CaW5kKHd4LkVWVF9FUkFTRV9CQUNLR1JPVU5ELCBsYW1iZGEgZXZ0OiBOb25lKQ0KICAgICAg ICBzZWxmLl9iaW5kRXZlbnRzKGV2ZW50LldJREdFVF9FVkVOVFMgKyAoYnV0dG9uLkJ1dHRvbk1v dXNlQ2xpY2tFdmVudCwpKQ0KDQogICAgZGVmIF9PbkRlc3Ryb3koc2VsZiwgZXZlbnQpOg0KICAg ICAgICBzZWxmLl9iaXRtYXAgPSBOb25lDQogICAgICAgIGV2ZW50LlNraXAoKQ0KDQogICAgZGVm IF9nZXRCaXRtYXAoIHNlbGYgKSA6DQogICAgICAgIHJldHVybiBzZWxmLl9iaXRtYXANCg0KICAg IGRlZiBfc2V0Qml0bWFwKCBzZWxmLCBhVmFsdWUgKSA6DQogICAgICAgIHNlbGYuX2JpdG1hcCA9 IGFWYWx1ZQ0KICAgICAgICBibXAgPSBhVmFsdWUuZ2V0Qml0cygpDQogICAgICAgIHNlbGYuU2V0 Qml0bWFwTGFiZWwoYm1wKQ0KICAgICAgICBpZiB3eC5QbGF0Zm9ybSAhPSAiX19XWE1TV19fIjoN CiAgICAgICAgICAgIHNlbGYuU2V0Qml0bWFwRGlzYWJsZWQoYm1wKQ0KICAgICAgICAgICAgc2Vs Zi5TZXRCaXRtYXBGb2N1cyhibXApDQogICAgICAgICAgICBzZWxmLlNldEJpdG1hcFNlbGVjdGVk KGJtcCkNCiAgICAgICAgc2VsZi5SZWZyZXNoKCkNCg0KICAgIGRlZiBfZ2V0Qm9yZGVyKCBzZWxm ICkgOg0KICAgICAgICByZXR1cm4gc2VsZi5fYm9yZGVyDQoNCiAgICBkZWYgX3NldEJvcmRlcigg c2VsZiwgYVN0cmluZyApIDoNCiAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJib3JkZXIgYXR0cmli dXRlIGlzIHJlYWQtb25seSIpDQoNCiAgICBkZWYgX2dldEZpbGUoIHNlbGYgKSA6DQogICAgICAg IHJldHVybiBzZWxmLl9maWxlDQoNCiAgICBkZWYgX3NldEZpbGUoIHNlbGYsIGFGaWxlICkgOg0K ICAgICAgICBzZWxmLl9maWxlID0gYUZpbGUNCiAgICAgICAgc2VsZi5fc2V0Qml0bWFwKGdyYXBo aWMuQml0bWFwKGFGaWxlKSkNCg0KICAgIGRlZiBfc2V0QmFja2dyb3VuZENvbG9yKCBzZWxmLCBh Q29sb3IgKSA6DQogICAgICAgIGFDb2xvciA9IHNlbGYuX2dldERlZmF1bHRDb2xvciggYUNvbG9y ICkNCiAgICAgICAgaWYgc2VsZi5fZmlsZSA9PSAnJzoNCiAgICAgICAgICAgIGJtcCA9IHNlbGYu X2JpdG1hcC5nZXRCaXRzKCkNCiAgICAgICAgICAgIGRjID0gd3guTWVtb3J5REMoKQ0KICAgICAg ICAgICAgZGMuU2VsZWN0T2JqZWN0KGJtcCkNCiAgICAgICAgICAgIGRjLlNldEJhY2tncm91bmQo d3guQnJ1c2goYUNvbG9yKSkNCiAgICAgICAgICAgIGRjLkNsZWFyKCkNCiAgICAgICAgICAgIGRj LlNlbGVjdE9iamVjdCh3eC5OdWxsQml0bWFwKQ0KICAgICAgICBzZWxmLlNldEJhY2tncm91bmRD b2xvdXIoIGFDb2xvciApDQogICAgICAgIHNlbGYuUmVmcmVzaCgpICAgIyBLRUEgd3hQeXRob24g YnVnPw0KDQogICAgYmFja2dyb3VuZENvbG9yID0gcHJvcGVydHkod2lkZ2V0LldpZGdldC5fZ2V0 QmFja2dyb3VuZENvbG9yLCBfc2V0QmFja2dyb3VuZENvbG9yKQ0KICAgIGJpdG1hcCA9IHByb3Bl cnR5KF9nZXRCaXRtYXAsIF9zZXRCaXRtYXApDQogICAgYm9yZGVyID0gcHJvcGVydHkoX2dldEJv cmRlciwgX3NldEJvcmRlcikNCiAgICBmaWxlID0gcHJvcGVydHkoX2dldEZpbGUsIF9zZXRGaWxl KQ0KDQoNCmltcG9ydCBzeXMNCmZyb20gLi4gaW1wb3J0IHJlZ2lzdHJ5DQpyZWdpc3RyeS5SZWdp c3RyeS5nZXRJbnN0YW5jZSgpLnJlZ2lzdGVyKHN5cy5tb2R1bGVzW19fbmFtZV9fXS5JbWFnZUJ1 dHRvbikNCg0KaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoNCiAgICBpbXBvcnQgcHByaW50DQog ICAgDQogICAgYiA9IEltYWdlQnV0dG9uU3BlYygp --000000000000f63db40587114fd0--