2014-03-28 3 views
0

현재 .txt 개의 파일에서 추출한 일부 데이터를 표시하도록 설계된 C++ wxWidgets 기반 소프트웨어에서 작업 중입니다. 여러 개의 탭을 만들고 싶으므로 wxAuinotebookwxListCtrl과 함께 사용하기로 결정했습니다.벡터에 객체가있는 AddPage wxAuiNotebook

wxAuiNotebook에 새 탭을 만들려면 개체가 필요하고이 개체의 크기를 wxListCtrl으로 지정합니다. 현재 내 목표는 파일을로드 할 때마다 소프트웨어가 데이터를 추출하고 wxAuinotebook에 새 탭을 만드는 것입니다. 그리고이를 위해 동적 배열 (벡터)에 새 객체를 만들어 새로운 ListCtrl 객체를 매번 새 탭의 기초로 사용합니다. 여기

내 코드의 흥미로운 부분입니다 :

std::vector<wxListCtrl> *Listes; 
int nbr_listes = 0; // with a variable to store how many ListCtrl I create 

내가 벡터 모든 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에 오류 반환 : 그리고, 파일 로딩 후, 나는 벡터에서 새로운 ListCtrl 객체를 생성

\include\wx\msw\listctrl.h|446|error: 'wxListCtrl::wxListCtrl(const wxListCtrl&)' is private

내가 제대로 auiNotebook에 페이지를 추가 할 수있는 방법을 내부에 ListCtrl이 있습니까? 벡터의 포인터를 벡터로 선언하는 것과 같은 여러 가지 방법을 시도했지만 실패했습니다.

읽어 주셔서 감사합니다.

답변

0

아마 작은 오타이지만, 때문에이 작동하지 않습니다

std::vector<wxListCtrl> *Listes; 

당신은 아마 할, 표준

std::vector<wxListCtrl*> Listes; 

편집 : 매번 당신이 시도하기 때문이다 스택에 할당 된 변수로 wxListCtrl을 벡터에 추가하고 복사 생성자 (private로 선언 됨)를 호출해야하는 힙이 아니라면 오류를 생성합니다. 또한

내가

+0

감사합니다 wxDataviewCtrl하여 데이터를 표시하는 제안 (귀하의 wxWidgets에 버전에 따라), 나는 당신의 제안과 같은 선언을 수정하고 약간에게 코드를 수정하고 지금은 컴파일합니다. –

+0

문제 없습니다, 그게 stackoverflow 여기에 무엇입니까 –