我正在为我们正在开发的一些工具包编写一个小调试应用程序,我想将它推广给一些用户,看看他们是否可以引发任何崩溃.有没有人知道有效地包装wxPython应用程序以捕获任何和所有未处理的异常会导致应用程序崩溃的方法?
理想情况下,我想捕获所有输出(不仅仅是错误)并将其记录到文件中.任何未处理的异常都应该记录到当前文件,然后允许异常按常规传递(即日志记录过程应该是透明的).
我敢肯定以前有人必须做过这些事情,但是我没有设法通过谷歌发现任何看起来有用的东西.
我写了一个wxPython程序,我正在翻译成wxWidgets.该程序有一个滚动窗口,显示图像.在Rappin,wxPython In Action(清单12.1)之后,我在一个面板中使用了StaticBitmap.在浏览最新的wxWidgets文档时,我发现了一个可怕的警告:wxStaticBitmap应该只用于非常小的图像.它说,"......如果你想要便携地显示更大的图像,你应该使用自己的控制." 好的.给我看看.我没有"自己的控制权".
拉平错了,或文件是否过时了?
问题 - 一个新手,毫无疑问 - 是什么是在wxWidgets中做一个简单的图像视图窗口的正确方法?wxStaticBitmap的直接替代品会很好.我查看了wxWidgets"samples"目录中的"image"程序.这是一场战争与和平. 当然必须有罐头类或简单的食谱.
我之前从未使用过wxWidgets,我很想尝试一下,但是我已经遇到了一百万个问题.
我在Visual Studio 2010上使用wxWidgets 2.9.1.我已经完成了批量构建,以在每个配置中构建每个项目.
我已将include和lib引用添加到我的项目中.
当我尝试编译简单的"Hello,World!"时 程序,我收到此错误:
Error 1 error C1083: Cannot open include file: '../../../lib/vc_lib/msw/wx/setup.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我检查了我的lib/vc_lib文件夹,确实没有找到"msw"文件夹.只有"mswu","mswud","mswunivu"和"mswunivd".
有谁知道发生了什么?:/
如何设置Vertical BoxSizer的差距?Vertival BoxSizer中的相似或替代方法SetVGap(在GridSizer中设置sizer中单元格之间的垂直间隙(以像素为单位))是什么?
我无法在网上找到有关如何使用此方法的任何示例.我认为这可能是我将使用的东西.有人能为我提供一个如何使用这种方法的例子吗?
我发现这很难通过搜索找到,但很简单,如何从面板中删除控件?我有一些 wxStaticText 和 wxTextCtrl,我想交换删除现有项目并用新项目替换它们?是否有某种我可以调用的命令,或者我必须自己制作一些东西吗?干杯
我使用libcurl进行FTP工作,它工作正常,但如果闲置一段时间它只会崩溃.这是一个回溯,尽管阅读了一段时间我无法弄清楚什么是错的.跟踪没有显示我的函数崩溃的起源,因此调试器在此处留下了孤儿.我使用线程,如果在Linux上增加值Compiler是GCC 4.7
0 0x00007fff8e09b524 addbyter /home/stefano/Desktop/myproject/curl-7.33.0/lib/mprintf.c 914
1 0x00007fff8e09a32f dprintf_formatf /home/stefano/Desktop/myproject/curl-7.33.0/lib/mprintf.c 572
2 0x00007fff8e09b5a4 curl_mvsnprintf /home/stefano/Desktop/myproject/curl-7.33.0/lib/mprintf.c 932
3 0x00007fff8e089510 Curl_failf /home/stefano/Desktop/myproject/curl-7.33.0/lib/sendf.c 152
4 0x00007fff8e07dbf4 Curl_resolv_timeout /home/stefano/Desktop/myproject/curl-7.33.0/lib/hostip.c 618
5 0x00007fff78012bf8 ??
6 0x000000c300000016 ??
7 0x00007fff8e0d3604 ??
8 0x0000000000000002 ??
9 0x00000000001b7740 ??
10 0x0000000000000000 ??
Run Code Online (Sandbox Code Playgroud)
更新1 在调试器下再次运行它并在线路遇到崩溃
FILE *fd;
fd = fopen(files[i].c_str(), "rb"); //<---here goes the crash!
Run Code Online (Sandbox Code Playgroud)
files [i] .c_str()应该从wxString给出const*char新的BT是
0 0x00007fff8e08952a Curl_failf /home/stefano/Desktop/myproject/curl-7.33.0/lib/sendf.c 154
1 0x00007fff8e07dbf4 Curl_resolv_timeout /home/stefano/Desktop/myproject/curl-7.33.0/lib/hostip.c 618
2 0x00007fff780158c8 ??
3 0x00000000001b7730 ??
4 0x00007fff78009808 ??
5 …Run Code Online (Sandbox Code Playgroud) 在该文档中进行wx.Slider(wxPython的用于PY2,wxPython的用于PY3,wxWidgets的),这里列出命名为微件控制wx.SL_SELRANGE,定义为允许“用户选择在滑块(仅MSW)的范围内”。对我来说,这指的是双控制,同一轴上的两个滑块以定义低/高范围。我无法让它显示两个控件。
开始使用的基本代码。在这一点上,我什至不担心方法、事件或诸如此类的东西,只是为了展示一些东西。
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
# ... sizers and other stuff
self.myslider = wx.Slider(self.notebook_1_pane_2, wx.ID_ANY, 0, -100, 100, style=wx.SL_SELRANGE)
# ...
self.myslider.SetSelection(10, 90)
Run Code Online (Sandbox Code Playgroud)
有了所有这些,我能够让它显示的最多的是一条蓝线,它跨越了我期望的位置。

wxPython 文档都在谈论它,但是用户应该如何能够“选择滑块上的范围”,如此处所示(取自shiny)?

我错过了什么?是否有wx.Slider具有此功能的 wxPython 的合理公开示例?
PS:
系统:win81_64、python-2.7.10、wxPython-3.0.2.0
我正在运行 Kubuntu 15.04 64 位并试图让 Erlang 的 18.1 'debugger' 或 'observer' 运行(编辑:从 shell 中):
observer:start().
debugger:start().
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
{error,{{load_driver,"No driver found"},
[{wxe_server,start,1,[{file,"wxe_server.erl"},{line,65}]},
{wx,new,1,[{file,"wx.erl"},{line,115}]},
{observer_wx,init,1,[{file,"observer_wx.erl"},{line,96}]},
{wx_object,init_it,6,[{file,"wx_object.erl"},{line,337}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,240}]}]}}
ERROR REPORT==== 4-Oct-2015::15:34:01 ===
ERROR: Could not find 'wxe_driver.so' in: /home/howler/erlang/18.1/lib/wx-1.5/priv
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种论坛并遵循了有关 wxWidgets 的规定建议,但我仍然无法让它工作?
有谁知道解决这个问题的明确方法?
我正在使用C++创建一个wxWidget应用程序,在程序开始时我希望应用程序窗口包含具有随机颜色的像素,如下所示:
在上面的应用程序中有3600像素(60 x 60),我通过使用给每个像素一个随机的RGB颜色 uniform_int_distribution
使用我的代码中的以下函数生成上图中像素的颜色:
void random_colors(int ctable[][3], int n)
{
// construct a trivial random generator engine from a time-based seed:
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator (seed);
std::uniform_int_distribution<int> distribution(0,255);
for(int i=0; i<n; i++)
{
for(int j=0; j<3; j++)
{
ctable[i][j] = distribution(generator);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做的方法是给这个函数一个尺寸为3600 x 3的表,这个函数将填充颜色的值.
然而这种方式不是我想要的.我想要的是创建一个类somNode,其中每个somNode-object代表图片中的一个像素(RGB值作为成员数组属性).在这个somNode类中,我有一个成员函数,uniform_int_distribution用于在构造每个somNode自己的随机RGB颜色时给出.这是为每个创建随机颜色的功能somNode:
void rand_node_colour(int nodeWeights[])
{
// construct a trivial random generator engine from a time-based seed:
unsigned …Run Code Online (Sandbox Code Playgroud)