问题标签 [wxwidgets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
4067 浏览

c++ - Gui 工具包,我应该使用哪个?

我正在编写一个相当大且复杂的数据分析程序,并且我认为是时候为该程序构建一个 GUI。所以我的问题是:

我应该使用哪个 GUI 工具包?

我对编码和构建 GUI 完全陌生,希望能提供任何指导。它不一定是世界上最简单的工具包,我学得很快。但是,它确实需要能够执行以下操作(如果不是全部,对于任何给定的工具包来说,其中一些可能是非常基本的,但我认为最好将所有这些都扔掉以防万一)。

它必须允许我直接在屏幕上绘制,以便我可以放置图表(实际上是光谱)、绘图和类似的东西供用户查看。我需要能够收集他们点击上述光谱的位置信息。我需要能够显示文本并从用户那里获取文本输入。它需要能够生成菜单(您知道文件、编辑等)。如果它有一些用于生成表格的内置小部件会很方便(尽管如果我可以直接在屏幕上绘制,我可以克服它的不足)。它需要能够弹出警告、对话框、保存和打开框等。差不多就是这样,当我把它们写出来时,它们中的大部分看起来都很基本,但我不想让 GUI 部分编码和然后意识到我需要用不同的工具包重写它。

应该注意的是,我已经用 C++ 编写了这个程序,并且我不想用 C 或其他东西编写 GUI 部分,因此工具包需要支持 C++。

此外,跨平台工具包比单一平台工具包更可取。但是,如果它必须是一个单一平台工具包,那么我更喜欢它用于 Linux。

最后,我会非常喜欢开源工具包而不是闭源工具包。

除此之外,我想不出有什么要补充的。提前感谢您的时间和回答。

嗯,基于答案,我将同时查看 Qt 和 wxWidgets,看看哪个更吸引我。我可以接受多个答案,但我不能,因为我正在研究两件事,所以只接受一个答案是不公平的,也许在一两个星期后,我查看了工具包并想通了我想用的。

0 投票
1 回答
1263 浏览

c++ - wxWidgets 和 VC++

我决定今天熟悉一下 wxWidgets。我下载了 2.8.9 版(当前版本),并以所有需要的模式编译了库。

我能够开箱即用地构建/运行 wxWidgets 附带的示例。但是,当我使用/Za进行编译(即禁用语言扩展)时,即使是最小的 wxWidgets 示例,我也会遇到 100 多个构建错误。

我找不到有关此问题的任何文档。我可以定义一些东西来将 wxWidget 的内部切换为符合标准(至少就 VC++ 的合规性而言)?

也许我在构建原始库时做错了什么......以前有没有人遇到过这个“问题”?

谢谢!

编辑:我忘了提到我正在使用 VC++ 9。

此外,这里是前几个错误:

------ 构建开始:项目:最小,配置:Unicode Debug Win32 ------

正在编译...

最小的.cpp

c:\wxWidgets-2.8.9\include\wx/dynarray.h(69):错误 C2143:语法错误:在 '*' 之前缺少 ')'

c:\wxWidgets-2.8.9\include\wx/dynarray.h(69):错误 C2143:语法错误:缺少“;” 前 '*'

c:\wxWidgets-2.8.9\include\wx/dynarray.h(69):错误 C2059:语法错误:')'

c:\wxWidgets-2.8.9\include\wx/dynarray.h(69):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

c:\wxWidgets-2.8.9\include\wx/dynarray.h(810):错误 C2146:语法错误:缺少“;” 在标识符“SCMPFUNC”之前

c:\wxWidgets-2.8.9\include\wx/dynarray.h(810):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

c:\wxWidgets-2.8.9\include\wx/dynarray.h(810):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

c:\wxWidgets-2.8.9\include\wx/dynarray.h(811):错误 C2146:语法错误:缺少“;” 在标识符“SCMPFUNC”之前

c:\wxWidgets-2.8.9\include\wx/dynarray.h(811):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

c:\wxWidgets-2.8.9\include\wx/dynarray.h(811):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

编辑:看起来第一个错误是由使用_cdecl的事实引起的。看起来defs.h只检查是否定义了__VISUALC__。看不到学究气...

0 投票
4 回答
9916 浏览

user-interface - 如何在 wxWidgets 中设置最小窗口大小?

这是我拥有的小部件的层次结构:

Frame > wxBoxSizer > wxPanel > wxBoxSizer > wxFlexGridSizer(2 列,9 行),里面有各种表单域和按钮。

第一个 BoxSizer 是放置面板,第二个是围绕 FlexGrid 做一个边框。

一切看起来都不错,如果窗口放大,框架可以正常展开,但它也可以调整到几乎没有,隐藏所有表单元素。

如何将窗口的最小尺寸强制为默认情况下 FlexGridSizer 建议的尺寸(所有表单元素都可见并具有最小的可能尺寸)?

0 投票
1 回答
911 浏览

python - 动态设置 wx.GridBagSizer 的大小

我正在创建一个应用程序,我将按钮小部件拖到面板中。我想在我放置小部件的面板中有一个可见的网格,以便小部件与网格对齐。

我想使用 GridBagSizer 制作一个正方形为 15x15 像素的网格并不难(因为小部件将跨越多个单元格),但是如何根据面板的大小动态制作正方形的数量?

我是否必须计算在初始化和每次调整大小时需要填充面板的数量?

顺便说一句,使用 python 和 wxpython。

欧尔扬·彼得森

0 投票
1 回答
1388 浏览

python - 如何在事件处理程序中更改 wxRichTextCtrl 的光标位置?

我的应用程序中有一个 RichTextCtrl,它有一个EVT_KEY_DOWN. 执行的代码如下:

丰富的是我的 RichTextCtrl。

这是我想做的事情:

  • 在每次按键时,将键添加到控件(这是默认行为)

  • 将光标移动到控件的开头,第一个位置

这是它的实际作用:

  • 它将键添加到控件

  • 我检查了插入符号的位置,调试器报告它位于 0,0 但在控件上,它在当前位置闪烁(这是我按下键 + 1 之前的位置)

你看这里有什么不对吗?一定有什么我做错了。

0 投票
1 回答
3701 浏览

python - wxpython auinotebook 关闭标签事件

当我关闭 auinotebook 中的选项卡时使用什么事件?我用 EVT_AUINOTEBOOK_PAGE_CLOSE(D) 进行了测试。它没有用。

我还想右键单击选项卡本身的事件。

我在哪里可以找到可以与 aui 管理器/笔记本一起使用的所有事件?可能只是我的搜索技巧很差,但我找不到任何存在的不同事件的列表,也不是鼠标/窗口事件。有一个完整的清单真的很方便。

欧尔扬·彼得森

0 投票
1 回答
901 浏览

wxwidgets - 弹出菜单单选项目检查

我在 Windows 上使用带有 wxTaskBarIcon 的弹出菜单(wxWidgets-2.8.9)。如果我用单选项目填充弹出菜单,单击时它们不会改变状态。弹出菜单列表中的第一项被标记为选中。但是选择任何其他项目不会改变这一点。

目前没有项目点击事件处理程序(应用程序更像是 UI 原型)。我应该手动更新此处理程序中的项目检查状态还是仍然是框架职责?

0 投票
4 回答
3456 浏览

qt - Qt 或 WxWidgets 中的自动隐藏面板

我正在寻找一种方法来拥有一个类似于 Visual Studio 中的面板的停靠面板。

本质上是一个可以设置为自动隐藏或可以固定打开的面板。

可能这个问题有点含糊。我要找的基本上是这个产品

如果我缺少详细信息,请发表评论,因为我希望解决这个问题。我已经在谷歌上进行了相当多的搜索,但未能找到可能的解决方案。如果情况变得更糟,我最终将使用快捷方式来隐藏和取消隐藏侧面板。

0 投票
2 回答
1457 浏览

python - wxPython auinotebook.GetSelection() 返回第一页的索引

为什么“GetSelection()”将索引返回到第一页,而不是在“init”和“new_panel”中创建的最后一页?它确实在“点击”方法中返回正确的索引。

输出应该是 0 0 1 1 2 2,但我的是 0 0 0 0 0 0。

在 ArchLinux 中运行最新版本的 python 和 wxpython。

Ørjan Pettersen

0 投票
1 回答
1445 浏览

c++ - wxWidgets:使用 wxGLCanvas/wxGLContext 崩溃

至少在 Windows XP 上的 wxWidgets 2.8.9 和 2.8.10 会发生这种情况,没有在其他 patforms 上测试:

我有两个 dll,a.dll 和 b.dll,它们是在主机定序器中运行的 VST 插件。他们使用 wxWidgets 和 OpenGL。在初始化时,我在两个插件中都调用它(但 m_width 和 m_height 不同):

只要我只打开 a.dll 或 b.dll,它就可以正常工作。此外,打开 a.dll 或 b.dll 的多个实例也可以正常工作。但是,一旦我同时打开 a.dll 和 b.dll,主机定序器在调用此行后立即关闭(即使在调试时):

这就是我在输出中可以看到的: