Articles of wxwidgets

新窗口wxWidgets

在问这个问题之前,我确实search了很多东西。 对不起,如果这是一个简单的问题。 在我的wxWidgets应用程序中,我想从菜单选项中新build一个wxHtmlWindow 。 (我已经有我的主要应用程序窗口正确显示)。 我设置了EVENT_TABLE : EVT_MENU(wxID_HELP, MyFrame::OnHelp) 然后函数(我有一个指针html_help类私有): void MyFrame::OnHelp(wxCommandEvent& event) // Callback for the Help menu item { cout << "Enter OnHelp" << endl; wxWindow* help_win = new wxWindow(NULL, -1, wxDefaultPosition, wxSize(400, 600)); cout << "New window" << endl; help_win->Show(true); cout << "Show" << endl; html_help = new wxHtmlWindow(help_win, -1); cout << […]

如何限制文件select到一个单一的目录?

我正在Arch Linux中的wxWidgets 2.9.3上运行一个C ++项目,其中完成的程序将以“信息亭模式”运行,所以用户不应该能够访问甚至看不到底层的系统文件。 我仍然需要让用户打开并保存可能连接的USB驱动器上的文件。 我已经安装好了,以便USB驱动器自动安装在/介质上。 所以我需要的是一个文件select对话框,我可以将select限制在/ media目录中的文件和文件夹。 这样的事情是否存在?还是我必须做?

从Linux的C :: B交叉编译赢得WXWIDGET代码错过?

在Ubuntu 13.10,x86,使用CodeBlocks我已经成功交叉编译从Unix到Windows使用MINIGW。 在窗户上testing,并得到一个控制台。 它不会和wxwidgets一起工作。 在ubuntu下工作正常,但是它不会编译用于minigw编译器的wxwidgets。 我已经这样做了: Code :: Blocks和交叉编译器,并与控制台的作品 但不适用于wxwidgets。 它抛出一个错误,如: ————– Build: Release in testwindows (compiler: MiniGW compiler for windows)————— i586-mingw32msvc-g++ -I/usr/lib/i386-linux-gnu/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -Wall -O2 -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -DSTRICT -DHAVE_W32API_H -D__WXMSW__ -D__WINDOWS__ -I/usr/i586-mingw32msvc/include -c /data1/backup_config/codeblocks/Learn/testwindows/testwindowsApp.cpp -o obj/Release/testwindowsApp.o i586-mingw32msvc-g++: unrecognized option '-pthread' In file included from /usr/include/wx-2.8/wx/platform.h:293, from /usr/include/wx-2.8/wx/defs.h:21, from /usr/include/wx-2.8/wx/event.h:15, […]

从列表生成wxPython小部件组

这是其中一个令我感到沮丧的问题之一,因为我确信答案已经在那里了,我只是无法正确地提供search。 基本上我是新的GUI编程(做了大量的embedded式C / C ++)和学习wxPython开始。 我正在做一个应用程序来读取和写入configuration文件。 所以我有一个StaticText来显示要读取/写入的参数的名称,一个TextCtrl来显示值,并允许用户input,然后一个Getbutton和一个Setbutton。 我会把所有这些一起调用一个“小组”的小部件。 对于这个应用程序显然这个组会重复几次。 我认为只需要手动编辑和维护所有的代码,而不用手动编辑configuration参数,然后遍历列表并生成这个“组”的实例列表中每个项目的小部件。 除了一件事之外,我做了它的工作:我必须将所有的Getbutton绑定到同一个函数。 与设置button相同的东西。 有没有什么方法可以从这些函数中知道哪个Get或Setbutton被按下,从而在configuration文件中find和编辑哪个参数? 我敢肯定,有一种方法可以用父母或身份证或其他东西来做到这一点,但是我只是对OOP而言太新了。

如何在拖动窗口时覆盖默认的Linux Alt +鼠标行为?

我有一个wxWidgets应用程序按Alt +组合键时有自定义控件。 我的问题是,在Linux(Ubuntu的),当我尝试使用我的控制它不起作用,但它是使用窗口框架的默认Linux控件。 我可以用wxWidgets覆盖操作系统的自定义行为吗? 还有其他的方法吗?

SDL2 / wxWidgets SDL_CreateWindowFrom

我花了几天时间试图将SDL2显示embedded到wxWidgets中,但是失败了。 好的,这是我迄今为止… 首先是一个小细节: wxWidgets版本:3.1 | SDL版本2.0.4 | 操作系统:Fedora 23 | g ++ 5.3.1 我search了Google,但找不到最新的信息。 我发现,我应该使用SDL_CreateWindowFrom(),然后将其链接到wxPanel或wxStaticBitmap。 我写了testing代码,它实现了一个简单的wxFrame并初始化SDL2,代码编译正常,但在运行时挂起。我是SDL2的新手,如果有人看我的代码,看看我做错了什么,我将不胜感激。 我显然是误解了一些东西,所以任何帮助,将不胜感激。 以下代码是突出显示我的问题的简化块。 main.h #include <wx/wx.h> #include <SDL2/SDL.h> class TestApp : public wxApp { public: virtual bool OnInit(); }; main.cpp中 wxIMPLEMENT_APP_NO_MAIN(TestApp); // Initialise SDL before WX-Widgets and GTK3 int main(int argc, char** argv) { // Initialise SDL and Error Check […]

检测到程序和库版本之间不匹配

我使用这个命令在Linux上构build了wxWidgets: ../configure –enable-shared –disable-debug 它看到这个构build的结果: /usr/local/lib/wx/config/gtk2-ansi-release-2.8 /usr/local/lib/wx/include/gtk2-ansi-release-2.8/wx/setup.h wx-config输出: alex @ alex-linux:〜$ wx-config –list 默认configuration是gtk2-ansi-release-2.8 默认configuration将用于输出 备用匹配: GTK2-ANSI-debugging2.8 GTK2-ANSIdebugging静态-2.8 GTK2-ANSI释放静电-2.8 alex @ alex-linux:〜$ wx-config –cppflags –release 2.8 -I / usr / local / lib / wx / include / gtk2-ansi-release-2.8 -I / usr / local / include / wx-2.8 -D_FILE_OFFSET_BITS = 64 -D_LARGE_FILES -D__WXGTK__ alex @ […]

wxWidgets和UI自动化

我有一个使用wxWidgets的小应用程序,运行在MS Windows上。 我正在使用UI自动化进行自动化testing。 大多数情况下,这是相当不错的。 不过,我碰到了一个麻烦。 对于大多数小部件来说,UIA“Name”属性似乎与小部件上的任何文本匹配。 (我不知道wxWidgets是否这样做,或者UIA是否这样做。)但对于图像button…是的,没有文字。 所以我想要做的是为这些小部件添加一些属性,使它们通过UIA唯一标识,而不会改变GUI的外观。 我曾经希望只要在窗口devise器中设置“名称”属性就可以做到这一点…但可惜的是不。 任何想法如何我可以解决这个问题?

分发使用wxWidgets的C ++ Linux应用程序的选项

我正在使用wxWidgets的C ++ Linux应用程序,需要作为编译的二进制应用程序进行分发。 项目主pipe已经指定我们要包含应用程序的所有依赖关系,以便最终用户不需要安装任何东西来运行应用程序,只要他们已经安装了标准的系统组件( libc等)。 我认为这个要求是最终用户要求的。 我知道这不是您可能认为是Linux应用程序的“正常”分发过程。 对于自己没有很多依赖关系的简单库,这不是问题。 但是对于wxWidgets我webkitgtk了WebView类(在应用程序中使用)所需的webkitgtk问题。 webkitgtk本身有一些依赖关系,可能有自己的依赖关系,依此类推。 基本上,看起来我会打开一个真正的蠕虫jar,试图包括在应用程序中的一切,更高级的项目开发人员似乎同意。 所以我想知道,我有什么select分发这样的应用程序? 我试过寻找有关这方面的信息,普遍的意见似乎是让最终用户安装wxWidgets 。 这些是我遇到的选项: 按项目负责人的要求将所有依赖项编译为共享库。 这样做的缺点是有许多库需要担心,这将导致显着的膨胀。 要求最终用户安装wxWidgets (在GTK和webkitgtk )。 这里的缺点是用户需要安装多个依赖关系,如果他们在包pipe理器中没有包含上述适当版本的发行版,这对他们来说可能是一个麻烦。 这也意味着我们不能提供特别要求的东西。 要求最终用户安装了GTK和webkitgtk ,而不是wxWidgets 。 与上面相同,但依赖性较less。 另一个缺点是,如果安装了不同版本的依赖关系,那么可能会存在版本兼容性问题,而不是用于构build打包的wxWidgets库。 我是否正确评估了这些不同select的利弊? 有没有我错过的select? 谢谢!

从GtkWidget获取X11窗口句柄

wxWindow :: GetHandle()函数返回Windows上的HWND和Linux上的GtkWidget。 我需要得到X11窗口句柄,这不是小部件本身。 我怎样才能从那个小部件的句柄? 我需要C ++代码,因为它是wxWidgets的主要语言。