1

我遇到了一个奇怪的问题,我有一个 uitable,我想从网络输入中获得新的输出,当我更改 uitable 中的输入值以获得新输出时,我必须按两次按钮。我已经搜索了很多关于这个问题的问题,但我仍然没有得到确切的答案。你们中的任何人都可以告诉我如何解决这个问题吗?

这是适用的代码:

 t = uitable('Parent', f, 'Position', [0 60 260 400],...
        'Data',table_data,...
        'ColumnName',cnames,...
        'RowName',rnames,...
        'ColumnFormat',ColumnFormat,...
        'ColumnEditable',ColumnEditable,...
        'Enable','on',...
        'Visible','on');   

 handles.pushbutton1 = uicontrol('Style','Pushbutton',...
  'Units','Pixels',...
  'Position',[210 470 100 30],...
  'String','Simulate Network',...
  'callback',@Simulate_Callback); 

在此处输入图像描述

例如,当我将 Satznummer 更改为新值时,我必须按两次 Simulate Network 直到获得新输出。

我很感激任何答案。谢谢。

4

1 回答 1

1

在uitable中,当您编辑一个值时,您需要将焦点从编辑字段更改为图形,然后才会按下按钮注册。

通过双击按钮,您将在第一次单击时更改焦点,并在第二次单击时激活按钮。您还可以通过按回车键或单击图形上的任何其他位置来将焦点更改为图形。

需要更改焦点事件的原因是,在您编辑时,按下按钮应该导致文本出现/消失,而不是执行您可能绑定到KeyPress图形回调的任何其他操作。此外,改变焦点是触发表回调的原因。

于 2015-02-06T15:30:27.623 回答