Статический текст не показывает всю строку при загрузке с набором (ручки .Text3, «String», MyString)

StackOverflow https://stackoverflow.com//questions/21010172

  •  21-12-2019
  •  | 
  •  

Вопрос

Я использую Customer GUI, сделанный с руководством в сочетании с Arduino и модулем Bluetooth. Короче говоря, я хочу, чтобы я хотел прочитать / писать через Bluetooth на SD-карту. Это все работает нормально!

Но! При чтении с SD-карты MATLAB считывает правильные данные. Я могу проверить это, потому что при печати в окно команд отображается правильные данные, которые были на SD-карте.

Проблема в том, что когда я пытаюсь установить эти данные в строку статического текста в руководстве, происходит некоторые забавные вещи. Статический текст может быть загружен текстом, но если я добавлю больше текста в файл, он загружается, и попытайтесь прочитать его снова, он еще снова отображает только старые данные. Я знаю, что строка обновляется, потому что, как я уже сказал, когда я печатаю в команду, она показывает правильные данные.

У меня были странные проблемы с установкой статического текста с этим проектом, у кого-нибудь есть какие-либо идеи, чтобы облегчить? Другие проблемы, которые у меня были установлены строки в начале функции обратного вызова, но текст, который фактически не обновляется до тех пор, пока после обратного вызова не выполнит всю функцию или выбросить ошибку или athnot.

Это было полезно?

Решение 2

Проблема не была расти, поэтому MatLab не рисовал, пока вся функция не была закончена.

Другие советы

Слина слишком длинная для элемента String GUI, E.g., элемент строки GUI может удерживать 5 строк, и вы пытаетесь отображать 6, то 7 и т. Д.?

MATLAB не позволяет автоматически производить полосы прокрутки на статический текст.Смотрите http://www.mathworks.com/matlabcentral/newsreader/view_thread/148773 Для обсуждения альтернатив.Что я делаю (вежливость коллегира, показываю мне это) на дисплеях журнала в реальном времени (при условии, что это в цикле) это, с TxtMssg - мой текст «коробка» и rec_line - это линия, которую я читал из последовательного порта,

try
    % Determine NumLines empirically for your font, font size, and static text size
    NumLines = 21;
    % Get the contents of the static text box, make a cell if necessary
    Mssg = get(handles.TxtMssg, 'string');
    if iscell(Mssg) == 0
        Mssg={Mssg};
    end
    % Cat on the newly received line
    Mssg = [Mssg; rec_line];
    % trim to length of textbox, last NumLines rows only
    if length(Mssg) > NumLines
        Mssg = Mssg((end-NumLines+1):end);
    end
    % Write Mssg, with a strtrim() in case of any trailing newlines
    set(handles.TxtMssg, 'string', strtrim(Mssg));
catch err
    % Error handling
end
.

Я рекомендую использовать try/catch/end с приложениями типа данных, чтобы предотвратить глюбовое сообщение от разрушения всей программы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top