将向量设置为wxComboBox的选择值 我用GUI创建了第一个C++程序。 我使用的是代码::Blocks v16.01和wxWidgets v3.03。 我发现在wxComboBox类构造函数中,代表选项的类型是wxArrayString。我曾尝试将vector转换为vector,然后再转换为vector和wxArrayString,但失败惨重

将向量设置为wxComboBox的选择值 我用GUI创建了第一个C++程序。 我使用的是代码::Blocks v16.01和wxWidgets v3.03。 我发现在wxComboBox类构造函数中,代表选项的类型是wxArrayString。我曾尝试将vector转换为vector,然后再转换为vector和wxArrayString,但失败惨重,c++,wxwidgets,C++,Wxwidgets,我的问题是如何设置wxComboBox对象的默认选择值? 我希望它们最好是用在程序执行期间创建的向量值填充 代码如下: #include <iostream> #include <vector> #include <fstream> #include <sstream> using namespace std; vector <double> vector_double; vector <string> vector_s

我的问题是如何设置wxComboBox对象的默认选择值? 我希望它们最好是用在程序执行期间创建的向量值填充

代码如下:

#include <iostream>
#include <vector>
#include <fstream>
#include <sstream> 
using namespace std;

vector <double> vector_double;
vector <string> vector_string;
vector <wxString> vector_wxstring;

void convert_double_to_string(vector<double> &dbl, vector <string> &str)
{
    for (int i = 0; i < dbl.size(); i++)
    {
        ostringstream stream;
        stream << dbl[i];
        str.push_back(stream.str());
    }
}
void convert_string_to_wxString(vector<string> & str, vector <wxString> &wxstr);
{
    for (int i = 0; i < str.size(); i++)
    {
        wxstr.push_back(_(str[i]));
    }
}
void main()
{
    /////////

    // here setting vector_double's values

    //////////

   convert_double_to_string(vector_double, vector_string);
   convert_string_to_wxString(vector<string> vector_string, vector_wxstring);
}

这就是我得到的。但是,到wxString的字符串转换不起作用。即使它会,我也不知道如何将它插入wxArrayString。

大致如下:

wxComboBox * cbo = new wxComboBox( ... );
wxArrayString as;
for ( auto& s : vector_string )
  as.Add( s );
cbo->Set( as );

显然,您需要将每个双精度值转换为字符串,然后将这些字符串放入wxArrayString。你能发布你的最佳尝试吗?这样我们就可以看到你有什么问题了?@ChrisW.,请展示一些你尝试过的和出错的代码-要么你遇到了编译器/链接器错误,要么程序没有达到你的预期。尽可能精确。这行是错误的:将字符串转换为向量字符串,向量字符串;删除“向量”谢谢@ravenpoint,它编译成功了!我可以使用Combox1->SetValuevector_wxstring[1]设置wxComboBox的值;但是我仍然不知道如何设置所有其他可能的选择。非常感谢!它起作用了。事实证明,向量的转换是不必要的。