GUI
追加したい がありpopup menu
ます。表示されるpopup menu
フィールドはファイルに保存されますtargets.txt
。
プログラムを開くときにpopup menu
、上記のファイルの行を含める必要があります。
プログラムで動的に変更したいので、これを行っています。 popup menu
ユーザーが別のフィールドに入力したディレクトリ パスが含まれるため、ディレクトリ パスをファイルに保存し、ユーザーがフォルダーに入るたび popup menu
に、ファイルに従って を設定します。(私はそれを実行しましたが、正常に動作します)
の各コンポーネントの を呼び出した後function myFunction_OpeningFcn(hObject, eventdata, handles, varargin)
でしか呼び出されないため、プログラムの で初期化を行うことができませんでした。代わりに、私は次のようなことをしなければなりませんでした:"create function"
GUI
"opening function"
function databaseMenu_CreateFcn(hObject, eventdata, handles)
if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
handles.databaseMenuObject=hObject; % (1) see below
guidata(hObject, handles);
(1) : ポップアップ メニュー オブジェクトをハンドルに保存して、opening 関数で使用できるようにします。
そして、オープニング関数で私ができること:
fid_r = fopen('targets.txt', 'r');
C = textscan(fid_r, '%s');
set(handles.databaseMenuObject,'String', C{1});
したがって、誰かが"database"
プログラムに新しいフォルダーを追加すると、popup menu
変更が行われます (ユーザーが選択したフォルダーをファイルに追加し、ファイルpopup menu
からフィールドを取得するように設定します (上記の関数))。次のようになります。
コードのデザインが気に入らず、別の方法でそれを行う方法がわかりませんでした。プログラムの の後に の"create function"
を"popup menu"
呼び出す方法はありますか? または、私の目標を達成するためのより良い方法はありますか? "opening function"