wxString与std::string之间的转换

 
由于wxWidget主要使用wxString字符串类型,而C++程序员经常使用STL,因此存在wxString与std::string之间的转换,下面举例来说明它们之间的转换.
           1. std::string -> wxString
               string   strstring = "string";
               wxString  wxstr = wxString( strstring.c_str(), wxConvUTF8);

           2. wxString -> std::string
                string strstring;
                wxString  wxstr = _("wxString");
                strstring = string ( wxstr.mb_str(wxCSConv(wxT("utf8"))) );
一、wxstring与其他类型转换

    1.1 int to wxString:     wxString str = wxString::Format(wxT("%i"),myInt);

    1.2    wxString to int :      int i; i = wxAtoi(str);

    1.3    string to wxString:     std::string stlString = "sdfas"; wxString mystr(stlString .c_str(),wxConvUTF8);

    1.4   wxString to string:   

wxString mystring(wxT("HelloWorld"));
        std::string stlstring = std::string(mystring.mb_str());
1.5  char* to wxString:
char* chars = "Hello world";
wxString mystring(chars, wxConvUTF8);
1.6   wxString to  char*:   char* cs = str.mb_str(wxConvUTF8);
法2:wxString to UTF-8 to char*(即string)
wxString wx;const wxCharBuffer wxc = wx.ToUTF8(); const char *wxs= wxc;
1.7    char[] to wxString:
char chars[34] = "sefasd";
wxstring mystring(chars, wxConvUTF8);
1.8  wxString to char[]:
wxString mystring(wxT("HelloWorld"));
char cstring[1024];
strcpy(cstring, (const char*)mystring.mb_str(wxConvUTF8));

二、wxdatetime 与wxstring转换

2.1  wxdatetime to wxstring :

wxDateTime dt = CalendarCtrl1->GetDate();
wxString msg = dt.Format(wxT("%Y-%m-%d"),wxDateTime::A_EST);

2.2 wxstring to wxdatetime:   char* ca = "2008-09-03";wxDateTime dt;dt.ParseDate(ca);

时间格式化参考:http://www.cplusplus.com/reference/clibrary/ctime/strftime.html

上一篇: wxKeyCode的各种值   下一篇: 使用wxWidget缩放截取图片

提交疑问

回顶部