2009-05-08 3 views
1

Мне нужно иметь возможность программно добавлять и удалять вкладки в wxNotebook по тексту/метке, которая отображается на каждой вкладке.Программно Добавить/Удалить вкладки в wxNotebook by PageText

В окнах, используя элементы управления вкладками и вкладками, я мог бы ссылаться на каждую вкладку с помощью ключа. Элемент управления вкладками имеет карту вкладок, на которые наносится текст каждой вкладки.

ответ

0

Используйте следующий вспомогательный метод для преобразования из метки метки/текста в соответствующий индекс wxNotebookPage. После того, как вы указали индекс wxNotebookPage, вы можете использовать все методы wxNotebook, которые ожидают индекса страницы в качестве аргумента.

int TabTestFrame::GetIndexForPageName(wxString tabText) 
{ 

    int end = Notebook1->GetPageCount(); 

    wxString selectedtabText = ""; 

    for (int i = 0; i < end; i++) 
    { 

     selectedtabText = Notebook1->GetPageText(i); 

     if (tabText == selectedtabText) 
      return i; 

    } 

    return -1; 
} 
1

Посмотрите на wxNoteBook api

функции, как GetPage будет возвращать указатель wxPanel и функцию SetPageText будет что позволяет изменить название и также такие функции, как AddPage и DeletePage позволит динамически изменять страницы.

+0

Вы не ответили на вопрос. Я прочитал API, и DeletePage принимает только целочисленное значение. GetPage возвращает только текущую выбранную страницу. Что делать, если я хочу удалить страницу, которую пользователь не выбрал? –

+0

Я ошибался в отношении GetPage, это делает индекс страницы. –

+1

Найдите индекс для нужной страницы и затем удалите его? – Lodle