2016-06-18 3 views
-1

Я хотел бы найти программный способ переключения кнопки переключения в GUI Matlab (построенный GUIDE). Кнопка имеет функцию обратного вызова, которая использует второй вход (eventdata, это довольно редко). Однако вызов этой функции извне GUI завершился неудачно. Меня не интересует только визуальный эффект включения/выключения, но вызывает соответствующий обратный вызов (в зависимости от состояния кнопки). Есть идеи?Как нажимать кнопку переключения в графическом интерфейсе программно?

+0

Пожалуйста, добавьте ваш код который не прошел. – Lati

+0

eventdata - объект, который нельзя сохранить или использовать повторно. Я думаю, это необходимо для активации кнопки, но я не мог создать ее сам. В отличие от вызовов других обратных вызовов, сделанных GUIDE (где eventdata обычно пуст), здесь я нашел его отсутствующим. Строка buttom такова: как я могу программно переключаться с этой кнопки, как если бы я нажимал на нее мышью? – NoamG

ответ

0

eventdata для кнопки переключения еще не определен (я использую v2012). Он написан ниже функции обратного вызова как комментарий «eventdata reserved - будет определен в будущей версии MATLAB». Поэтому вы можете использовать любое значение, когда вы вызываете обратный вызов кнопки переключения. Например, если ваш кнопки тумблеры тег togglebutton1 и его функции обратного вызова togglebutton1_Callback:

togglebutton1_Callback(handles.togglebutton1, 0, handles); 

позвонит кнопку переключения обратного вызова. Если вы хотите изменить состояние кнопки переключения, установите для него значение 1 для нажатого состояния и 0, чтобы не было нажата.

set(handles.togglebutton1, 'value', 1); 
+0

Хотя Matlab сохраняет утверждение о том, что данные события сохраняются для дальнейшего использования, в R2014 он уже используется. Проверьте это. Решение, которое вы предложили, уже проверено. Тем не менее, это все еще недостаточно, потому что при вызове обратного вызова для обновленного состояния кнопки требуется eventdata. – NoamG

+0

Я мог бы, наконец, проверить его с помощью Matlab 2015b. Как я вижу, кнопка toggle передает eventdata, которая имеет 2 свойства: Source (которые являются свойствами кнопки переключения) и EventName. Вы все равно можете вызвать обратный вызов кнопки переключения, используя следующий оператор: «togglebutton1_Callback (handleles.togglebutton1, [], handle); – Lati

Смежные вопросы