标签: wxwidgets

在Windows下设置Netbeans编译wxWidgets项目

我正在尝试设置我的 Netbeans IDE,以便它能够编译 wxWidgets 项目。

有一个非常相似的问题: Setup wxWidget in Netbeans 6.1 C++ On MS Windows? 但答案对我不起作用。而且提到的版本有点过时了。

我使用 mingw 包进行编译。在 mysys 中使用以下命令从控制台编译一个小型 hello World 应用程序没有问题:

$ g++ hello.cpp `wx-config --libs` `wx-config --cxxflags` -o hello.exe
Run Code Online (Sandbox Code Playgroud)

这是我在 Netbeans 中尝试的内容:
项目属性:

  • C++ 编译器 -> 其他选项:(wx-config cxxflags 用反引号括起来)
  • C++ 编译器 -> 包含目录:installation_Path/include
  • 链接器 -> 其他选项:(wx-config --libs 用反引号括起来)

当我尝试编译时 Netbeans 创建的命令行对我来说似乎是正确的

g++.exe `wx-config --cxxflags` -c -g -I/D/lib/wxWidgets/include -MMD -MP -MF build/Debug/MinGW-Windows/main.o.d -o build/Debug/MinGW-Windows/main.o main.cpp
Run Code Online (Sandbox Code Playgroud)

这编译没有错误

g++.exe `wx-config --cxxflags`  `wx-config --libs` -o dist/Debug/MinGW-Windows/wxwidgetstest build/Debug/MinGW-Windows/main.o -L/D/lib/wxWidgets/lib/gcc_lib …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets netbeans

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

Python和原生GUI

我检查了一些其他问题和网站,我得出的结论是Python确实允许(如果我错了,请纠正我)你使用不同的跨平台工具包(如Qt,wxWidgets和其他人)制作GUI程序.但是如果我不想要跨平台的可移植性呢?主要的,我想使用Cocoa for Mac等原生库,Windows的Windows本机库,GNOME的GTK和不同代码的KDE应用程序的Qt来开发本机应用程序.不同的代码不是问题.我可以这样做吗?我只是不需要跨平台的可移植性,但我需要制作本机应用程序?

专业程序员的任何见解?

python windows macos qt wxwidgets

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

VC++,将错误与wxWidgets链接,x64

我正在使用wxWidgets 2.8在Windows 7 x64上编译VC++ 10应用程序.这就是我所犯的错误.代码是使用wxFormBuilder生成的.

更新:我尝试在32位机器上运行它,仍然有同样的问题.

我不知道我错过了哪些wxwidgets库,或者我做错了哪些设置.在调试和发布模式下都可以尝试.

如果有人能指出一些提示,我真的很感激!一直在看这个问题.


1>WelcomeDlg.obj : error LNK2001: unresolved external symbol "class wxPoint const wxDefaultPosition" (?wxDefaultPosition@@3VwxPoint@@B)
1>ConsoleDlg.obj : error LNK2001: unresolved external symbol "class wxPoint const wxDefaultPosition" (?wxDefaultPosition@@3VwxPoint@@B)
1>ControlDialog.obj : error LNK2019: unresolved external symbol "class wxPoint const wxDefaultPosition" (?wxDefaultPosition@@3VwxPoint@@B) referenced in function "public: void __cdecl ControlDialog::loadFile(class std::basic_string,class std::allocator >)" (?loadFile@ControlDialog@@QEAAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>WxWidgetsWindow.obj : error LNK2001: unresolved external symbol "class wxPoint const wxDefaultPosition" (?wxDefaultPosition@@3VwxPoint@@B)
1>MainFrame.obj : error LNK2001: unresolved external symbol "class …
Run Code Online (Sandbox Code Playgroud)

c++ 64-bit wxwidgets unresolved-external visual-c++

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

将[0-255]整数范围转换为[0.0-1.0]浮点范围

在WxWidget中,颜色由RGB整数三元组表示.要使用[0.0-1.0] float三元组表示与其他库交互,需要进行转换.

WxPython,Numpy或Python中是否已存在这样的转换函数?

python wxwidgets wxpython type-conversion

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

在使用rebar的版本中包含头文件(例如wx.hrl)的最佳方法是什么

我正在为使用rebar的应用程序准备一个版本,我想知道从标准库中包含头文件的常用方法是什么.在我的例子中,它是wx.hrl文件,它在我的代码中包含在其完整的绝对路径中.

我猜这不是正确的方法:o)

erlang wxwidgets rebar

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

boost asio 和 WinSock.h 已经包含在内

像许多使用 Boost ASIO 库的人一样,我收到了“WinSock.h 已经包含在内”的错误消息。在其他帖子中,通过将 #include 行移到 #include 上方来回答问题

就我而言,我正在处理一个使用 Wx Widgets 的项目,并且似乎与 MFC 没有任何连接,也没有与 Win32 的直接连接。我找不到任何对 windows.h 的调用,也找不到任何相关的调用。我也试过使用 WIN32_LEAN_AND_MEAN 和 BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN 声明。

我想知道是否有人在编写 Wx Widgets 项目时遇到了与 Boost ASIO 类似的问题?如果是这样,您是否能够解决 Winsock 错误?

c++ boost wxwidgets boost-asio

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

wxWidgets中'delete'和'destroy'之间有什么区别?

我在使用deletedestroy在我的情况下想要删除对象时感到困惑,例如:

app.h

#include "taskBarIcon.h"
class myApp: public wxApp{
public:
    // ....
private:
    CTaskBarIcon *m_pTaskbar; // = NULL
};
Run Code Online (Sandbox Code Playgroud)

app.cpp

int myApp::OnExit() {
    if (m_pTaskbar != NULL) {
        delete m_pTaskbar; // <-- The problem here
        m_pTaskbar = NULL;
    }
    return 0;
}
int myApp::OnRun() {
    mainFrm *_mainFrm = mainFrm::getInstance(); // The main window
    _mainFrm->Show(false);
    m_pTaskbar = new CTaskBarIcon(_mainFrm);
    m_pTaskbar->SetIcon(wxIcon("appIcon"), _mainFrm->GetTitle());      
    return wxApp::OnRun();
}
Run Code Online (Sandbox Code Playgroud)

CTaskBarIcon.cpp

void CTaskBarIcon::rightButton_Click(wxTaskBarIconEvent & event) {
    PopupMenu(CreatePopupMenu());
}

void CTaskBarIcon::popupMenu_showWindow(wxCommandEvent & event) {
    m_pHandler->Iconize(false); …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets

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

如何隐藏 Windows 程序的控制台窗口?

我正在使用 wxWidget 框架。当我设置时,System/Subsystem: Console (/SUBSYSTEM:CONSOLE)我的程序将启动,但会同时显示 GUI 和控制台。这是它的外观:https : //i.stack.imgur.com/G83PR.png

当我更改时,System/Subsystem: Windows (/SUBSYSTEM:WINDOWS)它会显示错误:

LNK2019 未解析的外部符号 _WinMain@16 在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用

这是我的代码:

int main(int argc, char** argv) {
    Gui_AutoPokemon* gui = new Gui_AutoPokemon();
    wxApp::SetInstance(gui);

    mainArgc = argc;
    mainArgv = argv;

    return wxEntry(argc, argv);
}
Run Code Online (Sandbox Code Playgroud)

如何隐藏控制台窗口?

c++ windows wxwidgets

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

使用 gcc / mingw 时,我应该如何链接到静态 wxWidgets 库?

这相当令人沮丧,最常见的答案是“做 CodeBlocks 所做的事情”。我不在乎。我想明白。

问题是:wxWidgets 在非整体构建时被拆分到多个静态库中。这些必须根据它们的依赖关系以正确的顺序链接,否则静态链接将失败。

这些库是(它们的文件名是缩写的,但为了简单起见,我使用了它们的全名):

wxAdvanced
wxAui
wxBase
wxCore
wxGL
wxHTML
wxMedia
wxNet
wxPropertyGrid
wxQA
wxRibbon
wxRichText
wxSTC
wxWebView
wxXML
wxXRC
Run Code Online (Sandbox Code Playgroud)

什么是魔术顺序,我们可以在哪里查找 - 最重要的是:它如何归入我的项目CMakeLists.txt

下面显示了一些具有代表性的错误消息 - 也许它们会使通过网络搜索更容易发现此问答:

C:/wxwidgets-install_3.1.3_9/lib/gcc_x64_lib/wxmsw31ud_aui.a(floatpane.cpp.obj):floatpane.cpp:(.rdata$.refptr._ZN11wxMiniFrame12ms_classInfoE[.refptr._ZN11wxMiniFrame12ms_classInfoE]+0x0): undefined reference to `wxMiniFrame::ms_classInfo'

C:/wxwidgets-install_3.1.3_9/lib/gcc_x64_lib/wxmsw31ud_core.a(window.cpp.obj):window.cpp:(.rdata$.refptr.wxEVT_POWER_RESUME[.refptr.wxEVT_POWER_RESUME]+0x0): undefined reference to `wxEVT_POWER_RESUME'

src/CMakeFiles/wxmaxima.dir/Unity/unity_10.cxx.obj: In function `XmlInspector::XmlInspector(wxWindow*, int)':
C:/projects/wxMaxima/src/XmlInspector.cpp:42: undefined reference to `wxRichTextCtrl::wxRichTextCtrl(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&)'
Run Code Online (Sandbox Code Playgroud)

wxwidgets mingw static-linking

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

在 wxBoxSizer 的完整方向上分布和居中项目而不拉伸

我只是在学习 sizers 并且对如何实现这一点感到有些困惑。

如果我在一个框架中有一个水平框 sizer 并向其添加两个按钮(每个按钮的比例为“1”),那么它们都将拉伸以占据 sizer 的整个水平宽度(等于框架的整个水平宽度) ) 并均匀分布(参见下面的示例 1)。

示例 1 代码:

wxFrame* frame = new wxFrame(nullptr, wxID_ANY, "Frame");
wxPanel* panel = new wxPanel(frame, wxID_ANY);

wxBoxSizer* buttonSizer = new wxBoxSizer(wxHORIZONTAL);

wxButton* buttonOk = new wxButton(panel, wxID_OK, "Ok");
wxButton* buttonCancel = new wxButton(panel, wxID_CANCEL, "Cancel");

buttonSizer->Add(buttonOk, 1, wxALL, 10);
buttonSizer->Add(buttonCancel, 1, wxALL, 10);

panel->SetSizerAndFit(buttonSizer);
frame->Show();
Run Code Online (Sandbox Code Playgroud)

但是,如果我希望这些按钮保持其原始大小(不被拉伸),但仍然均匀分布在框架中,并且仍然在每个 wxSizerItem 内水平居中怎么办?也就是说,水平 sizer 的两个“列”都占据了对话框的一半,并且每个按钮都在这些列中的每一列中居中?我将如何做到这一点?这是一张图。按钮应该是它们的默认大小。

______________________________________
|    | Button 1 |    | Button 3 |    |
--------------------------------------
Run Code Online (Sandbox Code Playgroud)

以下代码不起作用:

buttonSizer->Add(buttonOk, 0, wxALL, 10);
buttonSizer->Add(buttonCancel, 0, …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets

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