Использование нескольких всплывающих меню разных строк

Для создания пользовательского интерфейса я использую GUIDE. Чтобы вставить всплывающее меню в пользовательский интерфейс, я использую следующий код (например):

data = {1;2;3,'A';'B';'C'}   
set(handles.uitable,'ColumnFormat',{'1','2','3'},'char',data)

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

http://images.undocumentedmatlab.com/uitable_lookup.png

1 ответ

Если я правильно понял, вы хотите установить для свойства ColumnEditTable выбранных столбцов значение true во время создания таблицы, и в зависимости от указанного вами формата столбца вы можете получить всплывающие меню или флажки, например. Рассмотрим этот код, который я изменил сформировать документ (смотри здесь)

function MyTable

f = figure('Position',[300 300 400 400]);

% Column names and column format
columnname = {'Greeting','Amount','Available','Fixed/Adj'};
columnformat = {{'Hello' 'Hi'},'bank','logical',{'Fixed' 'Adjustable'}}; %// Set the entries of the popup menu in a cell array. When the format is 'logical', the output in the table is a checkbox.

% Define the initial displayed data
d =    {'Hi'  456.3457  true   'Fixed';...
        'Hello'   510.2342  false  'Adjustable';...   
        'Hi'      658.2     false  'Fixed';};

% Create the uitable
t = uitable('Data', d,... 
            'ColumnName', columnname,...
            'ColumnFormat', columnformat,...
            'ColumnEditable', [true false true true],... %// That's the important line. Entries set to true will allow you to create a popup menu for the whole column.
            'RowName',[]);

Таблица выглядит так:

Как видите, вы можете выбрать "Привет" или "Привет" в первых столбцах и "Фиксированный" или "Настраиваемый" в последнем столбце.

Надеюсь, это поможет вам начать, и это то, что вы хотели!

Другие вопросы по тегам