Как я могу отключить кнопку Close панели ожидания в MATLAB?

Я хочу создать полосу ожидания, которая должна обрабатываться без перерывов. Как я могу этого добиться?

Я пробовал установить

h=waitbar(0,'please wait','CreateCancelBtn','setappdata(gcbf,''Cancel'',0)');

Это отключает кнопку «Закрыть» на панели ожидания, но также показывает мне кнопку «Отмена». Мне не нужна эта кнопка.


person Irfan Babar    schedule 05.07.2017    source источник


Ответы (1)


Когда вы используете параметр CreateCancelBtn для waitbar, он создает кнопку «Отмена», берет введенную вами строку и затем устанавливает для этой строки значение оба обратного вызова кнопки «Отмена» (т. Е. То, что происходит, когда вы нажмите кнопку) и CloseRequestFcn окна рисунка (то есть то, что происходит, когда вы нажимаете кнопку «Закрыть» в рамке окна).

Вы можете избежать этого, просто установив CloseRequestFcn окна рисунка самостоятельно:

h = waitbar(0,'Please Wait...');
h.CloseRequestFcn = '';

Кнопка «Закрыть» теперь отключена.

Имейте в виду, что CloseRequestFcn также выполняется, когда вы вызываете close(h), поэтому теперь вы не сможете закрыть его с помощью close(h). Вместо этого вы можете либо вызвать delete(h), либо убедиться, что перед вызовом close(h) вы сбросили CloseRequestFcn обратно на значение по умолчанию, которое является встроенной функцией closereq (введите edit closereq, чтобы увидеть, что это делает, в любом случае он просто вызывает delete) .

Надеюсь, это поможет!

person Sam Roberts    schedule 06.07.2017
comment
Спасибо, это мне помогло, у меня один вопрос, как отключить кнопку «Свернуть»? - person Irfan Babar; 06.07.2017