我想使用OpenCV的图像处理功能,但不是OpenCV GUI.我正在使用OpenCV 2.0.我将使用Qt4或WxWidgets来实现GUI功能.我用VC++ 2008 Express(VC++ 9.0)编译.
我想它分为两三个问题:
是否有必要做一些事情来禁用OpenCV的higui,这样它就不会干扰首选的GUI库,如果是这样,怎么做?
如何将OpenCV图像转换为首选GUI可以显示(也可能保存)的某些内容(位图?)?
(可选)如何将使用首选界面加载的图像转换为OpenCV可以使用的表单?
我正在尝试使用Python中的wxSlider创建一个带选项以进行范围选择的滑块.它有一个可选的范围参数,但问题是:
SL_SELRANGE:允许用户选择滑块上的范围.仅限Windows.
我正在使用Linux.我想我可能会将wxSlider子类化并使其在Linux上运行,或者自己创建一个自定义小部件.问题是我不知道如何选择任何一个选项.任何想法/指针/指向我正确的方向将不胜感激.
我尝试过类似的东西:
range_slider = wx.Slider(parent, wx.ID_ANY, 0, 0, 100, style=wx.SL_HORIZONTAL | wx.SL_LABELS | wx.SL_SELRANGE)
Run Code Online (Sandbox Code Playgroud)
但是"SL_SELRANGE"在Linux上什么都不做(应该提供两个句柄,以选择范围).
谷歌快速搜索这个问题表明它很常见,我不能为我的生活找到解决方案.
我直接从wxWidgets网站直接安装wxWidgets 2.8.8 for Windows.
每当我尝试编译任何东西时(例如"wxWidgets的第一个程序"中描述的示例应用程序 - http://zetcode.com/tutorials/wxwidgetstutorial/firstprograms/),我得到:
wx/setup.h:没有这样的文件或目录
我在我的编译器搜索列表中包含了C:\ wxWidgets-2.8.8\include和C:\ wxWidgets-2.8.8\include\wx.
应该很简单 - 但事实并非如此!:(
如果我尝试使用与wxWidgets集成的IDE(例如Code :: Blocks),同样的事情就会发生 - 而且,我想,这样就可以解决这个问题......
所以,请帮忙...为什么找不到setup.h?
我没有找到更好的方法来改变wx.ComboBox()中的不同选择,而不是将旧的ComboBox与新的交换.有没有更好的办法?
Oerjan Pettersen
#!/usr/bin/python
#20_combobox.py
import wx
import wx.lib.inspection
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.p1 = wx.Panel(self)
lst = ['1','2','3']
self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER)
self.st.Bind(wx.EVT_COMBOBOX, self.text_return)
def text_return(self, event):
lst = ['3','4']
self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, '20_combobox.py')
frame.Show()
self.SetTopWindow(frame)
return 1
if __name__ == "__main__":
app = MyApp(0)
# wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud) 我试图在我的Mac OSX 10.6上编译"Loch"而没有任何成功.我总是得到一些"编译时未找到的符号"错误.任何人都知道可能是什么问题?
非常感谢
c++ -o loch -Wall getline.o lxTR.o lxOGLFT.o lxSetup.o lxRender.o lxWX.o lxImgIO.o lxLRUD.o lxFile.o lxSTree.o lxData.o lxMath.o lxSView.o lxSScene.o lxGUI.o lxGLC.o lxOptDlg.o lxAboutDlg.o img.o -lz -L/usr/X11R6/lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macud_gl-2.8 -lwx_macud-2.8 -L/Applications/VTK_All/VTK_Bin/lib/vtk-5.4 -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -lvtkCommon -lvtkjpeg -lvtkpng -lvtkzlib -lvtksys -lfreetype -lGLU -lGL
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
ld: warning: in /usr/lib/libwx_macud_gl-2.8.dylib, missing required architecture x86_64 in file
ld: …Run Code Online (Sandbox Code Playgroud) 我想用Python和wxPython显示一条带有一条或两条曲线的实时图表,每秒最多50个样本.该小部件应该支持Win32和Linux平台.
任何提示都是受欢迎的.
编辑添加:
我不需要以50 fps更新显示,但需要在两条曲线上显示多达50个数据样本,并且显示器的更新速率合理(5..10 fps应该没问题).
编辑添加:
我在一个项目中使用了mathplotlib取得了很好的成功.然后我为其他项目选择了wx.lib.plot,我发现它更简单,但更容易使用并且消耗更少的CPU周期.由于wx.lib是标准wxPython发行版的一部分,因此特别容易使用.
我正在开发一个包含许多窗格的应用程序.看截图:

wx.ScrolledPanel包含许多wx.Panels.wx.grid.Grid.wx.Panel包含一个wx.grid.Grid.wx.Panel包含一个enthought chaco情节.wx.Panel.我想实现焦点跟随鼠标,这样当我将鼠标移动到绘图上时,我可以使用我的滚轮立即放大或缩小,而无需先点击绘图给它焦点.
类似地,当我将鼠标移到左侧设置,顶部事件或底部数据窗格时,我希望能够使用滚轮立即滚动窗口,而无需先单击窗口.
目前我定义了一个函数:
def focusFollowsMouse(window):
window.Bind(wx.EVT_ENTER_WINDOW, lambda event: window.SetFocus())
Run Code Online (Sandbox Code Playgroud)
我想仅在四个顶级窗格上应用此功能:绘图,设置,事件和数据.
但是,我需要为每个顶级窗格中的每个子面板或控件调用此函数以使其工作.例如,我需要将此功能单独应用于测量设置,分析参数,视图设置等面板.
很可能EVT_ENTER_WINDOW事件不会传播到父窗口.
有没有办法在不应用于focusFollowsMouse每个子面板或控件的情况下使其工作?
谢谢
我的主要操作系统是Linux,但现在我不得不为Windows编写一些C++应用程序.我正在考虑使用像WxWidgets这样的跨平台库(有些关心其他平台依赖项)在Linux机器上进行开发,然后将结果交叉编译为mingw目标.
所以我正在考虑使用的工具是
我的问题是:
什么是一些免费的(甚至更好的开源)Windows安装程序,我可能会用它来创建最终的包?如果可以从Linux编写软件包,将会有所帮助.
将酒是考不上的交叉编译版本(所有的逻辑在Linux版本的测试之后)?
这是一个好主意吗?:-)
我在Mac OS X(10.6.7)下遇到了GUI /线程相关的问题.我正在使用wxWidgets框架(版本2.9.1),在我的情况下它依赖于Cocoa.应用程序设计如下:
与大多数其他GUI框架一样,Cocoa不是线程安全的,因此我们确保从线程#2内部执行所有GUI调用,并在需要时传递消息.然而,在这种特殊情况下,在初始化期间(从NSUndoManager更加精确)从Cocoa的内部提出断言,实质上说"在主线程之外使用我是不安全的".即使线程#2是关于 GUI相关的任何内容的主线程.
好吧,NSUndoManager必须有办法找出它正在运行主线程(可能使用NSThread :: isMainThread()).所以我的问题是:是否有可能欺骗NSUndoManager(以及一般的Cocoa)?更好的是,将线程#2声明为"主线程",线程#1成为次要线程?基本上,我需要一个API调用,如"让调用线程成为主要线程".没有文档的魔法和Objective C++也很好,只要它也可以在OS X 10.5上运行.
PP代码,就像现在一样,在Windows/Linux/MacOSX + Carbon下完美运行.此外,重新设计它以改变线程结构将是一个巨大的痛苦.
为什么编译和链接的可执行文件包含源代码中包含的头文件路径?我正在使用wxWidgets库并使用Visual Studio 2013和gcc进行编译.这些头文件用于什么?如果它是编译器选项,我如何禁用它以避免这种情况?
构建配置:发布,静态链接.
