问题标签 [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 投票
1 回答
998 浏览

c++ - 使用 wxNotebook 创建选项卡闪烁效果(如 IM 程序)

如何使用 wxNotebook 创建像 IM 程序一样的 Tab 闪烁效果?

一个很好的例子是任何选项卡式 IM 程序,它会闪烁以向用户显示他们收到了新的 IM。

0 投票
1 回答
653 浏览

sqlite - 使用表中的更改更新列表视图

我有一个包含大量日志消息的 SQLite 数据库。

我想在列表视图中显示它(使用 wxWidgets)。

用户可以重新排序列表(通过按下列标题),对结果集应用过滤器,并使用滚动条像通常的列表一样浏览它。用户还可以选择列表中的一个或多个条目并删除它们。

我有一个虚拟列表模型:列表视图向模型询问特定行的内容。该模型使用当前过滤条件和顺序发出选择查询,并从结果中返回相应的行。

为了让它更快,我保留了结果的页面缓存:当请求一行时,我使用 LIMIT 和 OFFSET 获取整个页面(约 100 行)并从页面返回特定行。我存储了许多页面,下次请求一行时,我首先查看它是否在其中一个缓存页面中可用。事实证明,即使有很多条目(50k+),这种技术也能快速响应。

问题

我的问题是如何处理更新/插入/删除。我每个都有一个触发器,因此每当发生插入/更新/删除时都会通知模型。触发器还告诉模型受影响条目的 ID(主键)。

我的第一个版本只是在每次触发后对模型进行了完全重置。这不是很快,但足够快。问题是,如果用户选择了一行或几行,选择就会丢失。

模型的基类 (wxDataViewVirtualListModel) 包含在发生更改时应调用的方法:

  • RowInserted(行)
  • 行已删除(行)
  • RowChanged(行)

如果我使用它们,选择问题将得到解决,但是存在问题:

  • 我如何知道更改的行是否在当前过滤集中?
  • 我如何知道列表视图中的哪一行受到了影响?

第一个问题可以通过创建一个检查条目是否属于集合的方法来解决。它的行为必须与 SQL 条件完全相同,但它是可行的。

第二个问题我根本不知道如何解决。

我使用了一个虚假的(0 或最后一行)行号来强制更新视图,但问题是如果在选择之前插入/删除了行,则选择之后指向错误的行,等等。

你会怎么做?在内存中保留包含所有条目的高级数据结构?

这个问题与另一个问题有关: 显示大结果集

0 投票
2 回答
1708 浏览

c++ - wxwidgets // g++ 编译器错误:没有匹配函数调用'operator new(..'

目前我正在尝试将 Visual C++ 应用程序移植到 Linux。代码在 Visual Studio 中编译没有错误,但在 Linux 下我得到很多编译器错误。这些错误之一是:

更多信息:

  • IDE:使用 G++ 的 kdevelop
  • 图形接口:

错误出现在以下行:

和其他一些行。

我错过了什么?

0 投票
2 回答
2129 浏览

c++ - 通过 PageText 以编程方式在 wxNotebook 上添加/删除选项卡

我需要能够通过每个选项卡上显示的文本/标签以编程方式添加和删除 wxNotebook 上的选项卡。

在 Windows 中,使用选项卡控件和选项卡页,我可以通过一个键引用每个选项卡。选项卡控件有一个选项卡页映射,键控于每个选项卡的文本。

0 投票
1 回答
3584 浏览

wxpython - wxPython:wx.Panel 和 wx.Window 有什么区别?

我的印象是面板更好。真的吗?

一个比另一个有什么优势?有什么理由使用一个而不是另一个?

0 投票
1 回答
1487 浏览

windows - 在 wxPython/wxWidgets 中添加系统菜单项

如何在 wxPython/wxWidgets 中将菜单项添加到框架的系统菜单中?
(我说的是单击 Windows 中的应用程序图标时出现的菜单 - 具有最小化、最大化、关闭...的菜单)。

我想为一个不需要完整顶部菜单的简单应用程序添加我自己的菜单项。

仅 Windows 的解决方案,如果存在(并且足够简单),也会很有用。

0 投票
1 回答
232 浏览

user-interface - 需要建议(GUI、小部件) - 在绘图上实现区域选择

(我是 GUI 编程新手;否则有经验的程序员)

(使用 wxPython;但欢迎提供一般性建议)

我正在寻找有关实施可以在地块上进行区域选择的小部件的建议/方向。来自有经验的用户的任何指点将不胜感激。

需要做的是:

  1. 实现一个二维图。
  2. 实现一个可调整大小的正方形,可以四处移动以选择绘图上的一个区域。
  3. 报告该区域内的绘图点。

我意识到给定正方形的坐标和一个排序的绘图点列表,包含的绘图点很容易计算。我只是不确定用于实现绘图本身和可调整大小的正方形的小部件/图形技术。

谢谢你的帮助!

0 投票
1 回答
368 浏览

wxwidgets - wxWidgets 使用 'new' 关键字

对于wxWidgets,为什么要说:

代替:

两者有什么区别?第二个更易读且更易于使用,但所有示例都使用第一个,所以我想知道原因是什么。

澄清一下,我知道第二个版本不起作用,但我想知道是否有特定的设计决定导致必须使用第一种形式而不是第二种形式。TIA。

0 投票
1 回答
863 浏览

wxwidgets - wxToolBar 带有动态大小的按钮

我的应用程序(仅限 Microsoft Windows)正在使用带有wxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUT标志的 wxToolBar。它的所有按钮/工具都具有相同的宽度,这是基于最长的文本。

我想要不同宽度的按钮,具体取决于工具标签的长度,就像 Windows 原生工具栏按钮(使用BTNS_AUTOSIZE样式创建)一样。

有没有办法让 wxToolBar 带有动态计算宽度的按钮?

0 投票
4 回答
7699 浏览

c++ - How to make a wxFrame behave like a modal wxDialog object

Is is possible to make a wxFrame object behave like a modal dialog box in that the window creating the wxFrame object stops execution until the wxFrame object exits?

I'm working on a small game and have run into the following problem. I have a main program window that hosts the main application (strategic portion). Occasionally, I need to transfer control to a second window for resolution of part of the game (tactical portion). While in the second window, I want the processing in the first window to stop and wait for completion of the work being done in the second window.

Normally a modal dialog would do the trick but I want the new window to have some functionality that I can't seem to get with a wxDialog, namely a status bar at the bottom and the ability to resize/maximize/minimize the window (this should be possible but doesn't work, see this question How to get the minimize and maximize buttons to appear on a wxDialog object).

As an addition note, I want the second window's functionality needs to stay completely decoupled from the primary window as it will be spun off into a separate program eventually.

Has anyone done this or have any suggestions?