我目前正在开发基于C ++ wxWidgets
的软件,旨在显示从.txt
文件中提取的一些数据。由于我想创建多个标签,因此我决定将wxAuinotebook
与wxListCtrl
一起使用。
要在wxAuiNotebook
中创建新标签,我需要一个对象,我希望此对象为wxListCtrl
。我目前的目标是:每次加载文件时,软件都会提取一些数据并在wxAuinotebook
中创建一个新标签。为此,我在动态数组(向量)中创建一个新对象,每次都有一个新的ListCtrl
对象作为新选项卡的基础。
以下是我的代码中有趣的部分:
std::vector<wxListCtrl> *Listes;
int nbr_listes = 0; // with a variable to store how many ListCtrl I create
我声明了一个包含每个ListCtrl
个对象的向量。并且,在加载文件后,我在向量中创建了一个新的ListCtrl
对象:
Listes->push_back((new wxListCtrl(AuiNotebook1, ID_LISTCTRL1, wxPoint(121,48),
wxDefaultSize,
wxLC_LIST|wxTAB_TRAVERSAL|wxVSCROLL,
wxDefaultValidator, _T("ID_LISTCTRL1"))));
// And I want to add a page to the auiNotebook
if (!AuiNotebook1->AddPage(&Listes->at(nbr_listes),
OpenDialog->GetFilename(),
true,
wxNullBitmap)) //ajout d'une page passée en focus
{
cout << "Echec de l'ajout de page! \n";
}
但是编译器在listCtrl.h
:
\ include \ wx \ msw \ listctrl.h | 446 |错误:'wxListCtrl :: wxListCtrl(const wxListCtrl&amp;)'是私有的
如何在auiNotebook
内部ListCtrl
正确添加页面?我尝试了一些不同的方法,比如将向量声明为指针向量,但也失败了。
感谢您的阅读。
答案 0 :(得分:0)
这可能是一个小错字,但由于这个原因它不起作用:
std::vector<wxListCtrl> *Listes;
你可能想做什么
std::vector<wxListCtrl*> Listes;
修改强> 这是因为每当你尝试将wxListCtrl作为在堆栈上分配的变量添加到向量而不是在堆上时,它必须调用复制构造函数(它被声明为私有),因此它会生成错误。
另外(取决于你的wxWidgets版本)我建议用wxDataviewCtrl显示你的数据