Macos wxx27;t在Macbook Air(操作系统)下显示窗口

Macos wxx27;t在Macbook Air(操作系统)下显示窗口,macos,wxwidgets,Macos,Wxwidgets,1) 我已经用端口安装了gtk2(端口安装gtk2) 2) 我已经成功地编译了我的代码(使用wx) 当我执行二进制文件时,它并不像我预期的那样工作。那里没有橱窗 下面是我的简单演示代码: #include <wx/wx.h> enum { ID_FRAME, ID_BTN, }; class HelloWorldApp : public wxApp { public: virtual bool OnInit(); private: wxButton

1) 我已经用端口安装了gtk2(端口安装gtk2)
2) 我已经成功地编译了我的代码(使用wx)

当我执行二进制文件时,它并不像我预期的那样工作。那里没有橱窗

下面是我的简单演示代码:

#include <wx/wx.h>

enum
{
    ID_FRAME,
    ID_BTN,
};

class HelloWorldApp : public wxApp
{
public:
    virtual bool OnInit();
private:
    wxButton* button;
};

IMPLEMENT_APP(HelloWorldApp)

bool HelloWorldApp::OnInit()
{
    wxFrame *frame = new wxFrame((wxFrame*) NULL, ID_FRAME, _T("Hello wxWidgets World"));
    frame->CreateStatusBar();
    frame->SetStatusText(_T("Hello World"));
    button = new wxButton((wxFrame *)frame, ID_BTN, _T("123"));
    frame->Show(TRUE);
    SetTopWindow(frame);
    return true;
}
#包括
枚举
{
ID_框架,
身份证号码,
};
类HelloWorldApp:public wxApp
{
公众:
虚拟bool-OnInit();
私人:
wxButton*按钮;
};
实现应用程序(HelloWorldApp)
bool HelloWorldApp::OnInit()
{
wxFrame*frame=newwxframe((wxFrame*)NULL,ID_frame,_T(“你好wxWidgets World”);
框架->CreateStatusBar();
框架->设置状态文本(_T(“Hello World”);
按钮=新的wxButton((wxFrame*)帧,ID_BTN,_T(“123”);
帧->显示(真);
设置窗口(框架);
返回true;
}

首先,你真的不应该在OS X下使用wxGTK,除非你真的知道自己在做什么,正常的做法是使用wxOSX


其次,在OSX应用程序必须编译为捆绑包的情况下,请查看wxWidgets示例。

谢谢您的回答。我只想学习wxWidgets,我太懒了,不想在我的笔记本电脑下添加虚拟机。我将尝试使用虚拟机:)这里有些混乱。使用wxWidgets肯定不需要VM,所有主要平台都有本机端口。然而,您的问题似乎表明您尝试在OSX下使用wxGTK(Unix/Linux版本),这并不是最简单的事情。如果您使用Linux,请使用wxGTK。如果使用OSX,请使用wxOSX/Cocoa。