wxwidgets / phoenix Goto Github PK
View Code? Open in Web Editor NEWwxPython's Project Phoenix. A new implementation of wxPython, better, stronger, faster than he was before.
Home Page: http://wxpython.org/
wxPython's Project Phoenix. A new implementation of wxPython, better, stronger, faster than he was before.
Home Page: http://wxpython.org/
In python 3.5 (OS: Ubuntu 16.04):
self.general_tab_scrolledwindow = wx.ScrolledWindow( self.settings_tabs, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL )
wx._core.wxAssertionError: C++ assertion "scrolled" failed at /tmp/pip-build-jo6wg6ff/wxPython-Phoenix/ext/wxWidgets/src/gtk/scrolwin.cpp(227) in DoShowScrollbars(): window must be created
Part of code (generated with wxFormBuilder):
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Редактор настроек", pos = wx.DefaultPosition, size = wx.Size( 600,400 ), style = wx.DEFAULT_DIALOG_STYLE )
self.SetSizeHints( wx.Size( 600,400 ), wx.Size( -1,-1 ) )
sizer_settings_dialog = wx.BoxSizer( wx.VERTICAL )
self.settings_tabs = wx.Notebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.NB_TOP )
self.general_tab_scrolledwindow = wx.ScrolledWindow( self.settings_tabs, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL )
Can be reproduced in TreeMixin.py demo with latest Phoenix on Ubuntu 16.04 with gtk2. The item labels have white background and white font color instead having the default colors.
I'm happy see the project is moving along at a fast pace currently.
May you provide us with a rough estimate on when a "stable" version of wxPython Phoenix will be released? Is there a status page we can follow? Do you plan to support wxWidgets 3.1 in the first official Phoenix release, or upgrade afterwards?
There's quite a few different places where you can find information on the project and its status and they seem to be out of sync, so a quick update on the front page of the wxPython website on current status, plans, and where to find information would be great!
Phoenix doesn't build with SIP 4.18. It seems that SIP changed the way that it generates its type cast functions (in the case of multiple inheritance), resulting in compile errors:
[185/720] cxx: sip/cpp/sip_corewxHeaderButtonParams.cpp -> build/waf/2.7/sip/cpp/sip_corewxHeaderButtonParams.cpp.3.o
../../../sip/cpp/sip_corewxHVScrolledWindow.cpp: In function 'void* cast_wxHVScrolledWindow(void*, const sipTypeDef*)':
../../../sip/cpp/sip_corewxHVScrolledWindow.cpp:2900:59: error: 'wxVarScrollHelperBase' is an ambiguous base of 'wxHVScrolledWindow'
return static_cast<wxVarScrollHelperBase *>(sipCpp);
^
../../../sip/cpp/sip_corewxHVScrolledWindow.cpp:2906:59: error: 'wxVarScrollHelperBase' is an ambiguous base of 'wxHVScrolledWindow'
return static_cast<wxVarScrollHelperBase *>(sipCpp);
^
The problem seems like it could be avoided in SIP itself (by checking for duplicate base types), but other than that, I don't see a way around it other than editing the generated SIP code. I'll prepare a patch to do that for now. (I had originally thought this was a GCC 6.1.1 problem, but I failed to notice that SIP had changed too.)
Using latest git version, I am getting the below exception (DoShowScrollbars(): window must be created):
19:20:25: Debug: Invalid key string "f21"
19:20:25: Debug: Unrecognized accel key 'f21', accel string ignored.
19:20:25: Debug: Invalid key string "f21"
19:20:25: Debug: Unrecognized accel key 'f21', accel string ignored.
19:20:25: Debug: Unrecognized accel key 'start', accel string ignored.
19:20:25: Debug: Invalid key string "f24"
19:20:25: Debug: Unrecognized accel key 'f24', accel string ignored.
19:20:25: Debug: Invalid key string "f17"
19:20:25: Debug: Unrecognized accel key 'f17', accel string ignored.
Traceback (most recent call last):
File "agw/ShortcutEditor.py", line 380, in OnButton1
self.win = ShortcutEditorDemo(self, self.log)
File "agw/ShortcutEditor.py", line 168, in __init__
dlg = SE.ShortcutEditor(self)
File "/opt/Phoenix/wx/lib/agw/shortcuteditor.py", line 2214, in __init__
self.CreateWidgets()
File "/opt/Phoenix/wx/lib/agw/shortcuteditor.py", line 2236, in CreateWidgets
self.listShortcut = ListShortcut(self)
File "/opt/Phoenix/wx/lib/agw/shortcuteditor.py", line 1694, in __init__
wx.TR_FULL_ROW_HIGHLIGHT|HTL.TR_ELLIPSIZE_LONG_ITEMS)
File "/opt/Phoenix/wx/lib/agw/hypertreelist.py", line 4169, in __init__
self._main_win = TreeListMainWindow(self, -1, wx.Point(0, 0), size, main_style, agwStyle, validator)
File "/opt/Phoenix/wx/lib/agw/hypertreelist.py", line 2075, in __init__
CustomTreeCtrl.__init__(self, parent, id, pos, size, style, agwStyle, validator, name)
File "/opt/Phoenix/wx/lib/agw/customtreectrl.py", line 2820, in __init__
wx.ScrolledWindow.__init__(self, parent, id, pos, size, style|wx.HSCROLL|wx.VSCROLL, name)
wx._core.wxAssertionError: C++ assertion "scrolled" failed at /opt/Phoenix/ext/wxWidgets/src/gtk/scrolwin.cpp(227) in DoShowScrollbars(): window must be created
Attached image
This problem was not happening with a previous snapshot (dev1851_eedf718). Attached image
I am porting RIDE from Classic to Phoenix and this issue is BLOCKING my progress, because Tree Panel cannot be created and main frame depends heavily on it. If anyone wants to try my RIDE fork (compatible with 2.8.12.1, 2.9.5, 3.0.2 and Phoenix) it is here.
@RobinD42 how can I help debugging/fixing this? Thanks.
My system is Fedora Core 22 x64 with Python 2.7.10
With wx.lib.pdfviewer under Windows when using wx.GraphicsContext or Cairo.GraphicsContext I have had to apply a scale factor to the font sizes in the ratio of points-per-inch/screen-pixels-per inch (normally 72/96 = 0.75) as the fonts come out too big in some circumstances. However the scaling affects the wx.Font.PointSize, which can only take integer values. In my own application the original fonts are nearly all 12 point, which scales exactly to 9 point but when, for example, text is 10 point (-> 7.5) it can only be scaled to 8 point (too big) or 7 point (too small).
In general, the scaling needs to be applied to gc.SetFont which sets the font size and dc.GetFullTextExtent which returns the font metrics. The behaviour of wx.GraphicsContext and Cairo.GraphicsContext are slightly different:
wx.GraphicsContext requires scaling applied to both SetFont and GetFullTextExtent when rendering either to a screen or to a printer DC.
Cairo.GraphicsContext requires scaling applied only to GetFullTextExtent when rendering to a screen DC but to both SetFont and GetFullTextExtent when rendering to a printer DC.
It is not necessary to apply any sort of scaling when using OS X. Is there any advice on how this problem might best be addressed so that no scaling is required under Windows?
I'm trying to write my own cell editor for wx.grid
, but getting segfaults. Here is a sample that reproduces the issue: https://gist.github.com/lvu/99411daf258cb067eece6b30f3bc5923.
I've included the trailing rows of valgrind python wxgrid.py
in the gist, and the interesting ones are:
==31861== Invalid read of size 8
==31861== at 0x134CBB8B: wxGridTypeRegistry::FindOrCloneDataType(wxString const&) (grid.cpp:9308)
...
==31861== Address 0x14fdfcd0 is 0 bytes inside a block of size 128 free'd
==31861== at 0x4C2C104: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31861== by 0x13150854: sipwxGridCellEditor::~sipwxGridCellEditor() (sip_gridwxGridCellEditor.cpp:81)
==31861== by 0x13152EB1: release_wxGridCellEditor (sip_gridwxGridCellEditor.cpp:1055)
==31861== by 0x13152F2A: dealloc_wxGridCellEditor (sip_gridwxGridCellEditor.cpp:1067)
==31861== by 0x1277D703: forgetObject (siplib.c:11399)
==31861== by 0x1277CFC8: sipWrapper_dealloc (siplib.c:10962)
==31861== by 0x4EF5CF8: ??? (in /usr/lib/libpython3.5m.so.1.0)
==31861== by 0x1276C015: sip_api_parse_result_ex (siplib.c:2532)
==31861== by 0x13120832: sipVH__grid_26(PyGILState_STATE, void (*)(_sipSimpleWrapper*, PyGILState_STATE), _sipSimpleWrapper*, _object*) (sip_gridcmodule.cpp:1100)
==31861== by 0x131511D8: sipwxGridCellEditor::Clone() const (sip_gridwxGridCellEditor.cpp:296)
==31861== by 0x134CBB24: wxGridTypeRegistry::FindOrCloneDataType(wxString const&) (grid.cpp:9302)
==31861== by 0x134C7935: wxGrid::GetDefaultEditorForType(wxString const&) const (grid.cpp:8002)
So, it happens that when the editor's .Clone()
is called from within wxGridTypeRegistry::FindOrCloneDataType()
, the cloned object is immediately destroyed, and the application segfaults. Also, if a reference to the cloned object is stored somewhere, everything works just fine.
When run, the following is printed:
EDITOR <__main__.MyGridCellEditor object at 0x7f2463b1b948>
CLONE <__main__.MyGridCellEditor object at 0x7f2463b1b948> <__main__.MyGridCellEditor object at 0x7f2463b1b9d8>
DELETE <__main__.MyGridCellEditor object at 0x7f2463b1b9d8> 1
Segmentation fault (core dumped)
so it can be seen that the object destroyed is the cloned one, not the original.
from the demo, dragging a tab and dropping it in another position raises this (win7, phoenix 64bit-py3.4):
Traceback (most recent call last):
File "c:\python34\lib\site-packages\wx\lib\agw\aui\auibook.py", line 2023, in
OnLeftUp
self.ReleaseMouse()
wx._core.wxAssertionError: C++ assertion "!wxMouseCapture::stack.empty()" failed
at ....\src\common\wincmn.cpp(3319) in wxWindowBase::ReleaseMouse(): Releasing
mouse capture but capture stack empty?
import wx
import wx.lib.agw.floatspin as FS
class MainApp(wx.App):
def OnInit(self):
frame = Main(None, -1, 'floatspin test')
frame.Show()
return True
class Main(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
spn = FS.FloatSpin(self, -1, increment=0.1, value=4.0)
vb = wx.BoxSizer(wx.VERTICAL)
vb.Add(spn)
self.SetSizer(vb)
if __name__ == "__main__":
app = MainApp(0)
app.MainLoop()
Clicking up button to 4.2 and then down button to 3.9 gives the following: 4.0, 4.1, 4.2, 4.1, 4.0, 4.1, 4.0, 3.9
Clicking up button from 3.9 gives: 3.9, 4.0, 4.1, 4.0, 4.1, 4.2
This only occurs at the initial value. If you set an initial value of 5.0 then the same behaviour occurs around there. Also, you can see the button animation is correct when clicking.
Python version: 3.5.1
wx.version()
gives 3.03.dev1964+f780b21
It seems that #2026 has introduce a new bug:
Sometimes a reload helps to see the closed item in agenda list view. Here is something broken... Important for next beta release.
Are there any plans to upload releases considered stable (or "mostly" stable) to pypi? I assume that's an obvious question, but:
setup.py
(which is why I'm creating this issue).In the event that automatic installation fails via pip
because of external dependencies needed, such as a missing compiler, etc., further instructions could be given to the user to read the README.rst
or the like.
Appreciate the consideration and all of the work in this project!
Add capability to display Bar Charts without hacks, and add a histogram chart option.
The wx.Window methods GetSizeTuple() and GetPositionTuple() are now deprecated in favour of the methods GetSize() and GetPosition() respectively. However use of the deprecated methods raises different responses:
wxPyDeprecationWarning: Call to deprecated item. Use GetPosition instead
usr.nutrselectpos = self.GetPositionTuple()
Traceback (most recent call last):
File "e:\PyDevSrc7\Dp710\allsource\dialogs\nutrselect.py", line 185, in OnOk
usr.nutrselectsize = self.GetSizeTuple()
AttributeError: 'dpNutrSelect' object has no attribute 'GetSizeTuple'
Just compiled latest merge (14a1ddd) in Fedora 22 x64 GTK3, and the demo.py is failing with wx.adv module.
[helio@localhost demo]$ ./demo.py
Traceback (most recent call last):
File "./demo.py", line 3, in <module>
import Main
File "/opt/Phoenix/demo/Main.py", line 62, in <module>
import wx.adv
File "/usr/lib64/python2.7/site-packages/wx-3.0.3-dev-gtk3/wx/adv.py", line 6, in <module>
from ._adv import *
ImportError: /usr/lib64/python2.7/site-packages/wx-3.0.3-dev-gtk3/wx/_adv.so: symbol _ZTI21wxNotificationMessage, version WXU_3.0 not defined in file libwx_gtk3u_adv-3.0.so.0 with link time reference
(Some demos launch fine, for example: RearrangeDialog.py and FontDialog.py)
Unit tests are failing!
[helio@localhost Phoenix]$ ./b test
/usr/bin/python
Build using: "/usr/bin/python"
2.7.10 (default, Sep 24 2015, 17:50:09)
[GCC 5.1.1 20150618 (Red Hat 5.1.1-4)]
Python's architecture is 64bit
cfg.VERSION: 3.0.3
Running command: test
"/usr/bin/python" unittests/runtests.py
wx.version: 3.0.3 gtk3 (phoenix)
pid: 27597
Traceback (most recent call last):
File "unittests/runtests.py", line 162, in <module>
testRunner=MyTestRunner, testLoader=MyTestLoader())
File "/usr/lib64/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/usr/lib64/python2.7/unittest/main.py", line 149, in parseArgs
self.createTests()
File "/usr/lib64/python2.7/unittest/main.py", line 158, in createTests
self.module)
File "/usr/lib64/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "/usr/lib64/python2.7/unittest/loader.py", line 91, in loadTestsFromName
module = __import__('.'.join(parts_copy))
File "/opt/Phoenix/unittests/test_lib_agw_balloontip.py", line 5, in <module>
import wx.lib.agw.balloontip as BT
File "/usr/lib64/python2.7/site-packages/wx-3.0.3-dev-gtk3/wx/lib/agw/balloontip.py", line 171, in <module>
import wx.adv
File "/usr/lib64/python2.7/site-packages/wx-3.0.3-dev-gtk3/wx/adv.py", line 6, in <module>
from ._adv import *
ImportError: /usr/lib64/python2.7/site-packages/wx-3.0.3-dev-gtk3/wx/_adv.so: symbol _ZTI21wxNotificationMessage, version WXU_3.0 not defined in file libwx_gtk3u_adv-3.0.so.0 with link time reference
Command '"/usr/bin/python" unittests/runtests.py ' failed with exit code 1.
Finished command: test (2.179s)
Done!
@RobinD42 please tell me how can I help.
./configure when build wxWidgets.
Hello. I tried to use Phoenix with Mullvad Linux application. Installed Phoenix from pip (pip install wx).
First of all, pip installation doesn't check, if webkitgtk installed. Phoenix doesn't compile without webkitgtk.
And second, when Phoenix is installed, I can't launch Mullvad Linux application with it. It says, that hyperlinks module is missing. I installed all modules from requirements file before installing Phoenix.
import wx.lib.hyperlink
ImportError: No module named hyperlink
Phoenix is crashing the interpreter, and when I boiled my code down to the bare minimum I discovered it was an issue where I was catching an exception and then trying to display it in a MessageDialog before I had created the wx.App object.
Attached is the result of the code simplification.
Here's is the program's output from wxPython-classic:
3.0.2.0 msw (classic)
Traceback (most recent call last):
File "crash_phoenix.py", line 6, in
dlg = wx.MessageDialog ( parent=None, message='boom', caption='Crash', style=wx.OK|wx.ICON_ERROR )
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx_windows.py", line 3631, in init
windows.MessageDialog_swiginit(self,windows.new_MessageDialog(_args, *_kwargs))
wx._core.PyNoAppError: The wx.App object must be created first!
However, when run from phoenix, it crashes the python interpreter
3.0.3.dev2648+23be602 msw (phoenix)
(crash)
I used to use this grid.Deselect(row) so I could clear a single row selection. Now I don't see that there is a way to deselect a row. You can deselect a row by selecting a new row, but that's definitely not what I need to do. I need to select then deselect a row by clicking on the label of the same row, toggling the row selection. I read the documentation and looked at the examples, but there was no clear answer.
When I call FindFirst via Python using wxPython I will always get an empty string. In contrast when I call the function using C++ the code works as expected. This leads me to believe that the issue is in the wrapper between the C++ and Python code.
I am comparing wxWidgets 3.1 compiled using Visual Studio 2015 Community Edition with 3.0.3.dev2546+8e6609a msw (phoenix). If the program failed I the error message generated by the assert will be seen, otherwise nothing will happen which is the expected behavior.
Here are minimal examples demonstrating the difference.
C++ code:
#include <assert.h>
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/filesys.h"
#include "wx/fs_mem.h"
class TestApp : public wxApp
{
public:
TestApp()
{
}
virtual bool OnInit() wxOVERRIDE;
};
wxIMPLEMENT_APP(TestApp);
bool TestApp::OnInit()
{
if (!wxApp::OnInit())
return false;
auto memoryFS = new wxMemoryFSHandler;
wxFileSystem::AddHandler(memoryFS);
memoryFS->AddFile("test.txt","This is a test");
wxString spec = wxString("test.txt");
wxString found = memoryFS->FindFirst(spec);
assert(found.IsSameAs(wxString("test.txt")));
wxFileSystem::RemoveHandler(memoryFS);
delete memoryFS;
return false;//Returns false in order to make the program exit immediately after running this test.
}
Python code:
import wx
wx.App()
memoryFS = wx.MemoryFSHandler()
wx.FileSystem.AddHandler(memoryFS)
memoryFS.AddFile('test.txt','This is a test')
found = memoryFS.FindFirst('test.txt')
assert(found == 'test.txt')
wx.FileSystem.RemoveHandler(memoryFS)
wxPython/demo/MediaCtrl.py
the problem is that set the wrong backend.
backend = ""
if 'wxMSW' in wx.PlatformInfo:
# the default backend doesn't always send the EVT_MEDIA_LOADED
# event which we depend upon, so use a different backend by
# default for this demo.
backend = wx.media.MEDIABACKEND_QUICKTIME
By the way, I have no idea about this setting quicktime backend on Windows.
A joke?
7100d73 added a regression to the Group(DrawObject) class wherein a bounding box is not created before attempting to add objects.
Traceback (most recent call last):
File "wm_app.py", line 165, in <module>
main()
File "wm_app.py", line 160, in main
plot_die_centers=True,
File "wm_app.py", line 119, in __init__
plot_die_centers=self.plot_die_centers,
File "C:\gitlab\dthor\wafer_map\wafer_map\wm_frame.py", line 103, in __init__
self._init_ui()
File "C:\gitlab\dthor\wafer_map\wafer_map\wm_frame.py", line 139, in _init_ui
plot_die_centers=self.plot_die_centers,
File "C:\gitlab\dthor\wafer_map\wafer_map\wm_core.py", line 137, in __init__
self._init_ui()
File "C:\gitlab\dthor\wafer_map\wafer_map\wm_core.py", line 163, in _init_ui
self.draw_wafer_objects()
File "C:\gitlab\dthor\wafer_map\wafer_map\wm_core.py", line 298, in draw_wafer_objects
self.wafer_info.flat_excl)
File "C:\gitlab\dthor\wafer_map\wafer_map\wm_core.py", line 622, in draw_wafer_outline
excl_group = FloatCanvas.Group([excl_arc, excl_notch])
File "C:\WinPython34_x64\python-3.4.3.amd64\lib\site-packages\wx\lib\floatcanvas\FCObjects.py", line 2728, in __init__
self.AddObject(obj)
File "C:\WinPython34_x64\python-3.4.3.amd64\lib\site-packages\wx\lib\floatcanvas\FCObjects.py", line 2756, in AddObject
self.BoundingBox.Merge(obj.BoundingBox)
AttributeError: 'Group' object has no attribute 'BoundingBox'
The CustomRenderer.py
sampe provided in samples/dataview prints the following messages to console :
(CustomRenderer.py:14794): Gtk-CRITICAL **: IA__gtk_cell_editable_editing_done: assertion 'GTK_IS_CELL_EDITABLE (cell_editable)' failed
(CustomRenderer.py:14794): Gtk-CRITICAL **: IA__gtk_cell_editable_remove_widget: assertion 'GTK_IS_CELL_EDITABLE (cell_editable)' failed
This happens if I enter editing the 'Genre' field, then leave it and navigate to another record, and it keeps happening on each move. This happens on a freshly built Phoenix and wxWidgets from git, and I have gtk2 2.24.30-2
and gtk3 3.20.6-1
installed under Arch linux (not sure which one is used). Note that classic wxPython doesn't seem to have this issue.
Windows 7 x64
Python 3.5 x64
MSVC 2015 Update 1 (14.0)
(I am not that familiar with the internals of wxpython.)
I tried requiring wxpython in setup.py and building from the git source (not using wheels from http://wxpython.org/Phoenix/snapshot-builds/) using the recommended compiler for python 3.5. Several things do compile correctly, but then it:
WARNING: msgfmt command not found, message catalogs not rebulit. Please install
gettextand associated tools.
then continues on its merry way. (Does this warning matter? Where would I find gettext
?)FileNotFoundError: [Errno 2] No such file or directory: 'sip\\cpp\\_core.sbf'
(why is this missing?)Log:
<snip>
glcmn.cpp
cl /c /nologo /TP /Fovc140_mswudll_x64\gldll_glcanvas.obj /MD /DWIN32 /Zi /Fd..\..\lib\vc140_x64_dll\wxmsw30u_gl_vc140_x64.pdb /O2 /D_CRT_SECURE_NO_DEPRECATE=1
/D_CRT_NON_CONFORMING_SWPRINTFS=1 /D_SCL_SECURE_NO_WARNINGS=1 /D__NO_VC_CRTDBG__ /D__WXMSW__ /DNDEBUG /D_UNICODE /I..\..\lib\vc140_x64_dll\mswu /I..\..\include
/W4 /DWXBUILDING /I..\..\src\tiff\libtiff /I..\..\src\jpeg /I..\..\src\png /I..\..\src\zlib /I..\..\src\regex /I..\..\src\expat\lib /DWXUSINGDLL /DWXMAKINGDLL_GL /GR /EHsc /Yu"wx/wxprec.h" /Fp"vc140_mswudll_x64\wxprec_gldll.pch" ..\..\src\msw\glcanvas.cpp
glcanvas.cpp
rc /fovc140_mswudll_x64\gldll_version.res /d WIN32 /d _CRT_SECURE_NO_DEPRECATE=1 /d _CRT_NON_CONFORMING_SWPRINTFS=1 /d _SCL_SECURE_NO_WARNINGS=1 /d __NO_VC_CRTDBG__ /d __WXMSW__ /d NDEBUG /d _UNICODE /i ..\..\lib\vc140_x64_dll\mswu /i ..\..\include /d WXBUILDING /d WXDLLNAME=wxmsw30u_gl_vc140_x64 /i ..\..\src\tiff\libtiff /i ..\..\src\jpeg /i ..\..\src\png /i ..\..\src\zlib /i ..\..\src\regex /i ..\..\src\expat\lib /d WXUSINGDLL /d WXMAKINGDLL_GL ..\..\src\msw\version.rc
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation. All rights reserved.
link /DLL /NOLOGO /OUT:..\..\lib\vc140_x64_dll\wxmsw30u_gl_vc140_x64.dll /DEBUG /pdb:"..\..\lib\vc140_x64_dll\wxmsw30u_gl_vc140_x64.pdb" /opt:ref /opt:icf /MACHINE:X64 /LIBPATH:..\..\lib\vc140_x64_dll @F:\temp\nmFED1.tmp
Creating library ..\..\lib\vc140_x64_dll\wxmsw30u_gl.lib and object ..\..\lib\vc140_x64_dll\wxmsw30u_gl.exp
WARNING: msgfmt command not found, message catalogs not rebulit.
Please install gettext and associated tools.
Finished command: build_wx (7m11.263s)
Running command: build_py
Checking for F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf-1.7.15-p1...
Not found. Attempting to download...
Connection successful...
Data downloaded...
Checking for F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf-1.7.15-p1...
MSVC: E:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe
"h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe" F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf-1.7.15-p1 --msvc_arch=x64 --python="h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe" --out=build/waf/3.5/x64/release configure build
Setting top to : F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964
Setting out to : F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\build\waf\3.5\x64\release
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\x86_ARM\CL.exe
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\amd64\CL.exe
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\x86_amd64\CL.exe
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\amd64\CL.exe
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\CL.exe
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\amd64\CL.exe
Checking for program CL : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\amd64\CL.exe
Checking for program LINK : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\amd64\LINK.exe
Checking for program LIB : E:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\BIN\amd64\LIB.exe
Checking for program MT : C:\Program Files (x86)\Windows Kits\10\bin\x64\MT.exe
Checking for program RC : C:\Program Files (x86)\Windows Kits\10\bin\x64\RC.exe
Checking for program python : h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe
Checking for python version : (3, 5, 1, 'final', 0)
'configure' finished successfully (34.820s)
Waf: Entering directory `F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\build\waf\3.5\x64\release'
Traceback (most recent call last):
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Scripting.py", line 97, in waf_entry_point
run_commands()
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Scripting.py", line 153, in run_commands
ctx=run_command(cmd_name)
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Scripting.py", line 146, in run_command
ctx.execute()
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Scripting.py", line 353, in execute
return execute_method(self)
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Build.py", line 106, in execute
self.execute_build()
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Build.py", line 109, in execute_build
self.recurse([self.run_dir])
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b\waflib\Context.py", line 125, in recurse
user_function(self)
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\wscript", line 466, in build
source = getEtgSipCppFiles(etg) + rc,
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\buildtools\config.py", line 634, in getEtgSipCppFiles
return _getSbfValue(etg, 'sources')
File "F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\buildtools\config.py", line 627, in _getSbfValue
for line in open(sbf):
FileNotFoundError: [Errno 2] No such file or directory: 'sip\\cpp\\_core.sbf'
Command '"h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe" F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\bin\waf-1.7.15-p1 --msvc_arch=x64 --python="h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe" --out=build/waf/3.5/x64/release configure build ' failed with exit code 2.
Finished command: build_py (0m49.505s)
Finished command: build (8m0.768s)
Command 'h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe -u
build.py build' failed with exit code 2.
----------------------------------------
Command "h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\scripts\python.exe -u -c "import setuptools, tokenize;__file__='F:\\temp\\pip-build-zda2eowp\\wxPython-Phoenix-3.0.3.dev1964\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record F:\temp\pip-8zmht2kw-record\install-record.txt --single-version-externally-managed --compile --install-headers h:\mydocu~1\progra~1\worksp~1\photos~2\symbio~2\env\include\site\python3.5\wxpython-phoenix" failed with error code 2 in F:\temp\pip-build-zda2eowp\wxPython-Phoenix-3.0.3.dev1964\
Building with gtk2 does not have the unreferenced var. I googled around and found some fringe things near wxWidget space but was old and my system is XOrg, not Wayland I think, and thought mir was for that but frustrated I don't have enough experience to fix this myself. Thank you devs for your efforts. I wish I could contribute more than this.
I note there is a very similar issue https://github.com/wxWidgets/Phoenix/issues/86 but that was affected by _adv and this appears to be _core...
I built fresh wxWidgets 3.1.0 --with-gtk=3 from the March tar ball without issue and a git clone from a few minutes ago without issue; for perspective.
System:
Ubuntu Studio 16.04 x64
Linux 4.4.0-22-lowlatency #40-Ubuntu SMP PREEMPT Thu May 12 22:54:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Build line:
python3 build.py 3.5 dox etg --nodoc sip build --gtk3 --jobs=8
------------ BUILD FINISHED ------------
To use wxPython from the build folder (without installing):
Finished command: build_py (6m18.824s)
Finished command: build (8m58.18s)
Done!
Running tests:
python3 build.py test
Build using: "/usr/bin/python3"
3.5.1+ (default, Mar 30 2016, 22:46:26)
[GCC 5.3.1 20160330]
Python's architecture is 64bit
cfg.VERSION: 3.0.3.dev2054+14a1ddd
Running command: test
"/usr/bin/python3" unittests/runtests.py
Traceback (most recent call last):
File "unittests/runtests.py", line 41, in
import wx
File "/.../wxPython_Phoenix-3.0.3.dev2054+14a1ddd/wx/init.py", line 17, in
from wx.core import *
File "/.../wxPython_Phoenix-3.0.3.dev2054+14a1ddd/wx/core.py", line 6, in
from ._core import *
ImportError: /.../wxPython_Phoenix-3.0.3.dev2054+14a1ddd/wx/libwx_gtk3u_core-3.0.so.0: undefined symbol: _Z24gdk_mir_display_get_typev
Command '"/usr/bin/python3" unittests/runtests.py ' failed with exit code 1.
Finished command: test (0.221s)
Done!
Where the wx.ID_OK returns the label OK, the wx.ID_APPLY returns &Apply where I expected simply Apply.
I am on Mac OSX 10.11.1, python 2.7.11, installed wxpython via homebrew and the version is 3.0.2
. I am trying to play a video through VLC python binding. I need to set a window handle to the vlc player for the video to be drawn on.
I tried the following:
self._vlc_player.set_nsobject(self._video_content_panel.GetHandle())
but there's no video. After reading this stackoverflow post (http://stackoverflow.com/questions/31014804/nsview-from-wxpython), I realized that this may be an issue with how wxpython is done. Is there an easy way to get the NSView wrapped in the ControlRef? What would you suggest me do there?
Thanks!
I encountered the issue when trying to manually place a panel inside other panel(using "pos", "size") and then setting a sizer for the inner panel. The controls added to the sizer are one over another. I reproduced the buggy behaviour using mainloop sample, see the attachment. Hmm.. . don't see an "add attachmnent" option here so I paste code below.
System: Windows 10 64 bit, python 3
#!/usr/bin/env python
"""
This demo attempts to override the C++ MainLoop and implement it
in Python.
"""
import time
import wx
##import os; raw_input('PID: %d\nPress enter...' % os.getpid())
#---------------------------------------------------------------------------
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title,
(100, 100), (160, 150))
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_MOVE, self.OnMove)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
self.Bind(wx.EVT_IDLE, self.OnIdle)
self.count = 0
panel1 = wx.Panel(self)
# adding a nested panel
panel = wx.Panel(panel1, pos = wx.Point(10, 10), size = wx.Size(100, 100))
sizer = wx.FlexGridSizer(cols=2, hgap=5, vgap=5)
self.sizeCtrl = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY)
sizer.Add(wx.StaticText(panel, -1, "Size:"))
sizer.Add(self.sizeCtrl)
self.posCtrl = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY)
sizer.Add(wx.StaticText(panel, -1, "Pos:"))
sizer.Add(self.posCtrl)
self.idleCtrl = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY)
sizer.Add(wx.StaticText(panel, -1, "Idle:"))
sizer.Add(self.idleCtrl)
panel.SetSizer(sizer)
def OnCloseWindow(self, event):
self.Destroy()
def OnIdle(self, event):
self.idleCtrl.SetValue(str(self.count))
self.count = self.count + 1
def OnSize(self, event):
size = event.GetSize()
self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height))
event.Skip()
def OnMove(self, event):
pos = event.GetPosition()
self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
#---------------------------------------------------------------------------
class MyEventLoop(wx.GUIEventLoop):
def __init__(self):
wx.GUIEventLoop.__init__(self)
self.exitCode = 0
self.shouldExit = False
def DoMyStuff(self):
# Do whatever you want to have done for each iteration of the event
# loop. In this example we'll just sleep a bit to simulate something
# real happening.
time.sleep(0.10)
def Run(self):
# Set this loop as the active one. It will automatically reset to the
# original evtloop when the context manager exits.
with wx.EventLoopActivator(self):
while True:
self.DoMyStuff()
# Generate and process idles events for as long as there
# isn't anything else to do
while not self.shouldExit and not self.Pending() and self.ProcessIdle():
pass
if self.shouldExit:
break
# dispatch all the pending events and call Dispatch() to wait
# for the next message
if not self.ProcessEvents():
break
# Currently on wxOSX Pending always returns true, so the
# ProcessIdle above is not ever called. Call it here instead.
if 'wxOSX' in wx.PlatformInfo:
self.ProcessIdle()
# Proces remaining queued messages, if any
while True:
checkAgain = False
if wx.GetApp() and wx.GetApp().HasPendingEvents():
wx.GetApp().ProcessPendingEvents()
checkAgain = True
if 'wxOSX' not in wx.PlatformInfo and self.Pending():
self.Dispatch()
checkAgain = True
if not checkAgain:
break
return self.exitCode
def Exit(self, rc=0):
self.exitCode = rc
self.shouldExit = True
self.OnExit()
self.WakeUp()
def ProcessEvents(self):
if wx.GetApp():
wx.GetApp().ProcessPendingEvents()
if self.shouldExit:
return False
return self.Dispatch()
class MyApp(wx.App):
def MainLoop(self):
self.SetExitOnFrameDelete(True)
self.mainLoop = MyEventLoop()
self.mainLoop.Run()
def ExitMainLoop(self):
self.mainLoop.Exit()
def OnInit(self):
frame = MyFrame(None, -1, "This is a test")
frame.Show(True)
self.SetTopWindow(frame)
#self.keepGoing = True
return True
app = MyApp(False)
app.MainLoop()
The changes submitted by Dietmar Schwertberger are now in the latest snapshot build but I am still having the same problem as when I added the changes by hand, namely getting a maximum recursion depth exceeded message.
In my case it is happening in a DoGetBestSize call in a flatnotebook that contains a labelnotebook with a page panel that contains the ActiveX window. Instead of the parent call progressively interrogating its children as the code is requesting it to do, the parent DoGetBestSize is called again - recursively.
I haven't been able to produce a small runnable sample yet but have just noted a similar error if the Widget Inspection Tool is used. It is OK before the Activex window is opened, but opening or refreshing WIT afterwards produces a similar maximum recursion depth exceeded in comparison error
I'm on OS/X using Python 3 and the latest release, and the code appears identical to what's currently in trunk. I'm trying to display a very simple ULC_VIRTUAL list with one string column.
I'm getting an error on line (seriously?) 8059 of ultimatelistctrl.py: "AttributeError: 'KeyEvent' object has no attribute 'm_keyCode'" Which seems entirely likely given that the code indicates support for >= or < v2.9. :)
Apparently ULC directly accesses the raw members of KeyEvent, and... maybe these are different in the v3 port? No idea.
Normally I'd submit a patch but I don't have a wxPython build environment at the moment.
I have tried to run the Phoenix demo, both with Phoenix compiled by me from source and also with the pre-compiled snapshot build named "wxPython_Phoenix-3.0.3.dev1964+f780b21"
I get this, no matter what I do:
D:\MyProjects\Phoenix\demo>python Main.py
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\wx\core.py", line 1955, in Notify
self.notify()
File "C:\Python27\lib\site-packages\wx\core.py", line 3034, in Notify
self.result = self.callable(_self.args, *_self.kwargs)
File "Main.py", line 2601, in ShowMain
frame = wxPythonDemo(None, "wxPython: (A Demonstration)")
File "Main.py", line 1531, in init
self.SetOverview(self.overviewText, mainOverview)
File "Main.py", line 2130, in SetOverview
self.nb.SetPageText(0, os.path.split(name)[1])
SystemError: ..\Objects\longobject.c:998: bad argument to internal function
I have checked that the arguments of SetPageText make sense (int and str). I am unclear what the message exactly means...
This is on Windows 10 64 bit, Python 27 64 bit.
Andrea.
Hi,
I'm trying to use a ComboCtrl in my application. From the docs:
http://wxpython.org/Phoenix/docs/html/ComboCtrl.html
I tried their example:
comboCtrl = wx.ComboCtrl(self, wx.ID_ANY, "")
popupCtrl = wx.ListViewComboPopup()
# It is important to call SetPopupControl() as soon as possible
comboCtrl.SetPopupControl(popupCtrl)
# Populate using wx.ListView methods
popupCtrl.InsertItem(popupCtrl.GetItemCount(), "First Item")
popupCtrl.InsertItem(popupCtrl.GetItemCount(), "Second Item")
popupCtrl.InsertItem(popupCtrl.GetItemCount(), "Third Item")
Which raises an attribute error:
AttributeError: 'module' object has no attribute 'ListViewComboPopup'
In the docs example, an instance of wx.ComboPopup named "ListCtrlComboPopup" is created.
Am I correct in saying, this should be passed to comboCtrl.SetPopupControl? And not wx.ListViewComboPopup(), which does not actually exist?
It's unclear to me whether wx.dataview.TreeListCtrl is supposed to be working with wx.lib.mixins.treemixin.VirtualTree. TreeListCtrl was taken out of the TreeMixin demo, so I tried to put it back, but I get:
Traceback (most recent call last):
File "/home/anna/dev/Phoenix/demo/TreeMixin.py", line 232, in OnPageChanged
newTree.RefreshItems()
File "/home/anna/dev/Phoenix/wx/lib/mixins/treemixin.py", line 371, in RefreshItems
self.RefreshChildrenRecursively(rootItem)
File "/home/anna/dev/Phoenix/wx/lib/mixins/treemixin.py", line 389, in RefreshChildrenRecursively
reusableChildren = self.GetItemChildren(item)
File "/home/anna/dev/Phoenix/wx/lib/mixins/treemixin.py", line 240, in GetItemChildren
child, cookie = self.GetFirstChild(item)
TypeError: 'TreeListItem' object is not iterable
Is this something to be fixed for the release? Or VirtualTree can't be used with TreeListCtrl anymore? What's the alternative?
Any use of PropertyGridManager crashes Python (3.5 with one of the recent snapshots)
The demo does not start. I've attached a version which at least starts, but then crashes...
I had to deactivate the event stuff in TestPanel.init
PropertyGrid.zip
Missing from the implementation:
Regards,
Dietmar
the ribbonbar_demo.py in the samples directory crashes the interpreter clicking on the appearance tab (no problem with the agw version of ribbon demo). With py3.4 64bit on win7
I was not able to test with C++ but with all versions of wxPython it is not possible to escape the "&" by using the "&&" in radio items labels when in a wx.RadioBox. If the radio items are built with wx.RadioButton the "&" are processed as special function, or printed by using "&&".
Below are screenshots for the different wxPython versions I tested. (I really need to print values like &{dictionary}).
Imagine that!
I had entered,
pip install -U --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix
Installation apparently successful when I declared the domain 'trusted-host'.
I am not sure if this is normal behavior but it looks a little strange to me or a mistake with my code?
os: Windows 10 64bit,
version: '3.0.3.dev2445+ca34d71 msw (phoenix)'
ide: spyder ( Anaconda 64bit)
code (just a listctrl in a standard frame):
import wx
class Frame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title)
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.HORIZONTAL)
lc = wx.ListCtrl(panel, style=wx.LC_REPORT)
lc.InsertColumn(0, "column 1")
lc.InsertColumn(1, "column 2")
for x in range(0, 100):
lc.Append([str(x), str(x)])
sizer.Add(lc, 1, wx.ALL|wx.EXPAND, 5)
panel.SetSizer(sizer)
app = wx.App()
frame = Frame(title="list issue")
frame.Show()
app.MainLoop()
The issues:
clicking on a menu in the menu bar
(with Python 3.4-64bit, win7-64bit)
The BusyCursor no longer seems to have a context manager. The following works as expected in clasic:
import time
import wx
app = wx.App()
wx.Frame(None).Show()
with wx.BusyCursor():
time.sleep(5)
app.MainLoop()
In Phoenix it raises "AttributeError: exit". Getting rid of the "with" block and using
wait = wx.BusyCursor() ... del wait
works as expected.
the class wx.grid.GridCellAttr
has no method SetSize
I've been trying to create a help button for my application, but I wasn't able to implement the help button without removing the minimize and maximize button. Is this something that just can't happen with wx?
Is building Py2 and Py3 modules in the same directory supposed to work?
When I do so, I end up with the Py2 modules getting installed into the Py3 directory (in addition to the Py3 modules):
[talbert@easel wxPython_Phoenix-3.0.3.dev1976+d9956d6]$ find . -name _core*.so
./wx/_core.cpython-34m.so
./wx/_core.so
./build/waf/2.7/_core.so
./build/waf/3.4/_core.cpython-34m.so
./build/lib.linux-x86_64-3.4/wx/_core.cpython-34m.so
./build/lib.linux-x86_64-3.4/wx/_core.so
./build/lib.linux-x86_64-2.7/wx/_core.so
I think this is because the .so's get copied from build/waf// to wx/ and then wx/* gets bulk copied to the install dir. I can't for the life of me see where in the code this is happening, though.
I'am using this sanpshot: http://wxpython.org/Phoenix/snapshot-builds/wxPython_Phoenix-3.0.3.dev1964+f780b21-cp27-cp27m-win32.whl
and there is no wx.propgrid
Hi, I have troubles with Aui docks under python 3.5 which I build from Phoenix sources under Ubuntu 16.04. The following minimal script fails when trying to resize the docked panel.
import wx
import wx.lib.agw.aui as aui
class Window(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
manager = self.manager = aui.AuiManager(self)
panel1 = wx.Panel(self, -1, size=wx.Size(-1, -1))
panel2 = wx.Panel(self, -1, size=wx.Size(-1, -1))
info1 = aui.AuiPaneInfo().Center()
info2 = aui.AuiPaneInfo().Left()
manager.AddPane(panel1, info1)
manager.AddPane(panel2, info2)
manager.Update()
app = wx.App()
win = Window(None)
win.Show(True)
app.MainLoop()
No error message is thrown. Under python 2.7, no problems.
Thanks, jus
I've been unable to get a PropertyGrid to work successfully. It crashes every time. It appears to be inside a paint method, possibly some refcount problem? We weren't able to dig too deeply into it.
Attached is an example script illustrating the crash.
Oddly enough, if I use Wing IDE to set a breakpoint in the init method, then step through to MainLoop() line-by-line, the frame and propgrid show up fine, no crash.
This is on Windows 8.1 Professional 64-bit, running wxPython Phoenix snapshot 3.0.3.dev2733, built locally for Python 3.5.2 64-bit.
the problem is described here:
http://stackoverflow.com/questions/31243376/wxpython-writing-auto-completer
and is still present on the latest whl (March 10, 2016)
Just tried with python 3.4 on win7/64bit, wxPython_Phoenix-3.0.3.dev1964+f780b21-cp34-cp34m-win_amd64
Python: 2.7.9
wxPython: 3.0.3.dev2454+53f3c37 msw (phoenix)
Run the demo, open WIT (F6
or menu Help
-> Open Widget Inspector
) , close WIT and again open it via F6
or menu. Now i get a RuntimeError:
Traceback (most recent call last):
File "D:\devel\wxPhoenix\demo\Main.py", line 2472, in OnOpenWidgetInspector
InspectionTool().Show(wnd, True)
File "C:\Python27sl\lib\site-packages\wx\lib\inspection.py", line 104, in Show
app=self._app)
File "C:\Python27sl\lib\site-packages\wx\lib\inspection.py", line 160, in __init__
style=wx.NO_BORDER,
File "C:\Python27sl\lib\site-packages\wx\py\crust.py", line 47, in __init__
*args, **kwds)
File "C:\Python27sl\lib\site-packages\wx\py\shell.py", line 342, in __init__
self.execStartupScript(startupScript)
File "C:\Python27sl\lib\site-packages\wx\py\shell.py", line 421, in execStartupScript
self.push('')
File "C:\Python27sl\lib\site-packages\wx\py\shell.py", line 972, in push
self.more = self.interp.push(command)
File "C:\Python27sl\lib\site-packages\wx\py\interpreter.py", line 82, in push
command=command, more=more, source=source)
File "C:\Python27sl\lib\site-packages\wx\py\dispatcher.py", line 147, in send
response = _call(receiver, signal=signal, sender=sender, **kwds)
File "C:\Python27sl\lib\site-packages\wx\py\dispatcher.py", line 176, in _call
return receiver(**kwds)
File "C:\Python27sl\lib\site-packages\wx\py\filling.py", line 69, in push
self.display()
File "C:\Python27sl\lib\site-packages\wx\py\filling.py", line 159, in display
if self.IsExpanded(item):
RuntimeError: wrapped C/C++ object of type FillingTree has been deleted
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.