matlab - WindowKeyPressFcn在程序中断后执行

标签 matlab callback

我想在 while 循环中运行 matlab 脚本时检测按键的按下。目前,我只想在按下按键后显示成功。不幸的是,该消息仅在程序中断后(CTRL+C)显示,而不是在程序运行期间显示。这是代码:

% Init of callback
fig = gcf;
set(fig,'WindowKeyPressFcn',@keyPressCallback);


% keyPressCallback function
function keyPressCallback(source,eventdata)
    keyPressed = eventdata.Key;
    if strcmpi(keyPressed,'space')
        disp('success');
    end
end

最佳答案

您需要中断正在运行的脚本的循环,以便 Matlab 处理其他事件,本质上是您的按键事件。您可以通过在 while 循环内添加一个 Drawingow 来做到这一点,下面的代码应该足以让您合并到您自己的代码中:

fig = figure;
set(fig,'WindowKeyPressFcn',@(hFig,hEvent)fprintf('pressed key %s\n',hFig.CurrentKey) );
drawnow();
while true
  if ~ishandle(fig); break; end
  drawnow();
end

关于matlab - WindowKeyPressFcn在程序中断后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53281395/

相关文章:

matlab - Matlab 中的符号积分

python - 在 Python 中使用方法 "overloading"设计回调

php - Symfony2 和 Doctrine - 插入时生成代码

javascript - 使用 errback 有什么好处?

python - 使用 Python Paramiko exec_command 执行命令时未完成

python - 从 pandas 数据帧转换后修改 numpy 数组

java - Matlab 可以生成 Java 源代码吗?

matlab - 是否可以用科学计数法标记等高线图?

matlab - Simulink - 代码为 'Comment through' block

javascript - 并行读取多个文件并相应地将数据写入新文件中node.js