标签: wxwidgets

以图形方式布置wx应用程序

作为wx的新手,我想知道是否有一个IDE(特别是Linux)可以帮助我布置一个框架或对话框,或者只是为了帮助我看看我在做什么.这意味着还要为这些更改创建代码.

我记得当使用资源编译器为OS/2和Windows生成二进制文件然后创建窗口,并希望有类似的东西(虽然显然不是二进制,如果wx不支持).

wxwidgets code-generation

1
推荐指数
1
解决办法
455
查看次数

wxPython中的振动窗口

我如何在wxPython中振动窗口.我想要一些方法来指定它的长度和距离以及类似的东西.

是否有内置功能我没有注意到或者我是否必须自己编写代码?
(我正在考虑将窗口向侧面移动几次,但我宁愿使用可能更快的内置函数.)

python user-interface wxwidgets wxpython

1
推荐指数
1
解决办法
367
查看次数

如何实现虚函数的回调?

我正在使用wxWigets,但我想这个问题更多的是如何实现虚函数的回调.这是我的代码的(非常)简化版本:

// MyGUI.h 
Class MyGUI : public wxFrame {

  ...
  protected:
     virtual void onFeedButton_cb( wxCommandEvent& event ) { event.Skip(); }
  ...
}

// Animal.h 
Class Animal {

  public: 
       void Feed(); 
}
Run Code Online (Sandbox Code Playgroud)

一个小问题:我如何实现onFeedButton_cb回调,以便它可以访问Animal的Feed()函数?即在运行时,回调必须能够访问Animal的实例.

c++ polymorphism wxwidgets design-patterns

1
推荐指数
1
解决办法
2821
查看次数

Make Boost Python不会删除析构函数中的C++对象

我正在使用Boost Python为wxWidgets子集创建绑定.wxWidgets中的窗口对象不应手动删除,因为它们处理自己的删除:例如,当用户单击关闭按钮关闭顶级窗口时,它会自动删除自身.如果一个窗口删除,奇怪的事情将事件处理程序等情况的发生

(详情:http://docs.wxwidgets.org/2.8/wx_windowdeletionoverview.html)

但是这导致了在Python中创建的窗口对象的问题:在垃圾收集时,C++对象总是被删除!

有没有办法告诉Boost Python不要拥有它创建的C++对象?或许类似于构造函数的调用策略?

(另外,我有点担心如何处理从C++中删除的对象.当关联的C++对象被删除时,Python对象会发生什么?Python不会以任何方式得到通知.)

wxwidgets boost-python

1
推荐指数
1
解决办法
1813
查看次数

wxpython的wxEvent.Skip()解释道

我最近学习wxPython通过wxPython in Action,但我被困在第3章,特别是对的解释Figure 3.3Skip()钻石

Step 3 Locating the binder object,书中写道:

如果没有找到对象本身的绑定器,则处理在类层次结构中向上查找在对象的超类中定义的绑定 - (1)这与在容器层次结构中的向上走动不同下一步.

但在下一步中,Step 4 Determining whether to continue processing写道:

事件处理程序通过调用wx.Event方法Skip()来请求更多处理.如果调用Skip()方法,则继续处理,并且(2)在步骤中找到并执行在(3)超类中定义的任何处理程序.可以在处理程序中的任何位置调用Skip()方法.Skip()方法在事件实例中设置一个标志,wxPython在处理程序方法完成后进行检查.在清单3.3中,OnButtonClick()不调用Skip(),因此在这种情况下,事件处理在处理程序方法结束时完成.另外两个事件处理程序会调用Skip()(4),因此系统将继续搜索匹配的事件绑定,(5)最终调用鼠标进入和离开事件的默认功能,例如鼠标悬停事件.

我的问题与我在段落中标记的数字有关:

(1)在我的理解和其他一些googled材料中,传播是在容器层次结构中发生的事情,而不是类层次结构,这是正确的吗?

(2)说真的吗?任何处理程序都被执行?不是匹配实例和事件组合的那些?

(3)这里的超类是否正确?不应该是父窗户吗?

(4)我认为这一行与question2相矛盾,所以也许没有执行任何处理程序,只是匹配实例和事件组合的处理程序?

(5)什么是default functionality?它是如何被调用的?

如果有人有兴趣,list-3.3.py就在这里:

import wx


class MouseEventFrame(wx.Frame):

    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, 'Mouse Events',
                          size=(300, 200))
        self.panel = …
Run Code Online (Sandbox Code Playgroud)

python events wxwidgets wxpython

1
推荐指数
1
解决办法
3717
查看次数

有没有办法将wxWidget GUI传递给wxThread?

我制作了一款使用游戏循环的游戏.现在我想在wxWidgets中为这个游戏实现一个GUI.

问题是,当我初始化GUI时,程序的控制仍然在GUI循环上,并且不会进入游戏循环.

那么,我可以让GUI在自己的线程上运行吗?

c++ user-interface multithreading wxwidgets

1
推荐指数
1
解决办法
814
查看次数

如何在wxFrame上设置图标?

如何将图标(.ico文件)添加到wxFrame?

我正在查看文档,但找不到任何提及icon.

谢谢!

wxwidgets wxpython

1
推荐指数
2
解决办法
7112
查看次数

为什么链接器会尝试链接到我从未告诉它链接到的文件?

我收到链接器错误,指示链接器无法打开文件(静态库),因此失败.我正在非常困难地排除此错误,因为我从未告诉链接器链接到它无法打开的文件.

我告诉链接器链接到几个静态库.我链接的许多库都是wxWidgets静态库.我不需要来自wxWidgets的所有模块,因此有一些我链接到的和许多我不是.链接器无法打开的文件是'wxbase31ud_net.lib'.就像我说的那样,该文件不在我链接的库中.我的直接想法是,这种依赖性是以某种方式隐式引入的,可能是我链接到的一个wxwidgets库.我不认为静态链接是这样工作的,但我没有任何其他想法.我一直在研究这种可能性,但我没有发现任何迹象表明情况.

  • 我将构建输出详细程度设置为最大值,并且在报告错误之前从未提及过'wxbase31ud_net.lib'.
  • 我在我的cmake项目中确认有问题的文件从未从FindWxWidgets模块传回给我,并且从未在与目标关联的任何文件列表中引用.
  • 我浏览了整个项目目录,发现在任何地方都没有引用该文件,包括cmake生成的项目文件(visual studio项目文件).

什么可能导致链接器尝试打开此文件?

编辑:另外,要清楚,我看到的错误是LNK1104

linker wxwidgets static-libraries static-linking visual-c++

1
推荐指数
1
解决办法
111
查看次数

在函数调用中创建的对象与传入的对象之间有什么区别

这显然是我自学计算机科学教育的一个漏洞......

wxWidgets应用程序中文本控件(wxTextCtrl)的构造函数具有验证器对象的可选参数.所有代码示例都在文本控件的构造函数中动态创建验证器.

这有效..

wxString value = L"0.0";
wxTextCtrl* _Text = new wxTextCtrl(this, wxID_ANY, value, 
    wxDefaultPosition, wxDefaultSize, 0, 
    wxTextValidator(wxFILTER_NUMERIC, &value));
Run Code Online (Sandbox Code Playgroud)

但是在我的特殊情况下,我想在另一个函数中创建验证器并将其传回,这是行不通的.作为一个中间步骤,我试图在创建wxTextCtrl之前创建它并将其传递但是这也不起作用......

wxString value = L"0.0";
wxValidator valid = wxTextValidator(wxFILTER_NUMERIC, &value);
wxTextCtrl* _Text = new wxTextCtrl(this, wxID_ANY, value, 
    wxDefaultPosition, wxDefaultSize, 0, valid);
Run Code Online (Sandbox Code Playgroud)

虽然这编译并运行但它不执行验证.有谁能解释为什么?

wxTextValidator的原型调用常量引用.

wxTextCtrl::wxTextCtrl  (   wxWindow *  parent,
    wxWindowID  id,
    const wxString &    value = wxEmptyString,
    const wxPoint &     pos = wxDefaultPosition,
    const wxSize &  size = wxDefaultSize,
    long    style = 0,
    const wxValidator &     validator = wxDefaultValidator,
    const wxString & …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets c++11

1
推荐指数
1
解决办法
89
查看次数

为什么wxWidgets需要其他GUI库,例如GTK或Motif?

我在Linux或FreeBSD上构建wxWidgets库时注意到,wxWidgets需要其他GUI库,例如GTK +,Motif等。而GTK +,Motif或FLTK库似乎是独立的,因为它们不需要任何其他GUI库。

尽管这些库需要xlib,但是我们不必对xlib做任何事情。

我不明白

wxwidgets

1
推荐指数
1
解决办法
82
查看次数