2017-01-05 9 views

答えて

1

それはロゴが手動でGUIを作成した後や、代わりに、 全体のGUIを作成するために使用されるツールを、と思われるguideを使用せずに追加されていることが考えられます。詳細に

は、まず、imshow関数を用いて画像を添付する にGUIでaxesを追加する必要があるGUIの画像を表示するため。

:「ロゴ」の場合

が、それはGUIが を開き、GUIの実行中に変更されるべきではないとしてdiplayedことになっている、可能性が 次のコードを挿入することができ

imshow('my_logo_image.jpg') 

GUIのOpeningFcnは、hweufhefが表示される直前に実行されます。

GUIの.mファイルを見ると、残念なことに、これは当てはまりません。

GUI全体、特にロゴ がどのように構築されたかを理解することは困難ですが、GUIについてはいくつかの考慮事項があります。

enter image description here

あなたは、これが表示されるロゴを した場所である、左下隅にある軸に気づくことができます。これは、それがどのように表示されるかであるguideツールを使用してGUIを開く

これまでのところとても良いです。

さて、axesをダブルクリックして開きますProperty Inspector:あなたの意志奇妙 予告何か:axestagプロパティが空です。 guideが自動的に各項目のデフォルトTagプロパティ が追加された定義、ため

これは、奇妙です。これはFigure

  • ためProperty Inspectorに行く開きます 、任意のuicontrolを含まないGUIの任意のポイントをダブルクリック

    • GUIのバックアップ・コピーを作った後、今

      HandleVisibilityプロパティを設定してon

    • に設定します。
    • を閉じます。ツール

    今CommandWindow(fsolveGUI)を形成するGUIを実行した後、再び CommandWindowに次のように実行します。

    gui_handels=guidata(gcf) 
    

    機能guidataはGUI内のオブジェクトのhandelsが返され。

    これが出力されます:

    gui_handels = 
    
        figure1: [1x1 Figure] 
         edit1: [1x1 UIControl] 
    Untitled_1: [1x1 Menu] 
        text11: [1x1 UIControl] 
    Untitled_2: [1x1 Menu] 
         File: [1x1 Menu] 
    pushbutton1: [1x1 UIControl] 
         edit3: [1x1 UIControl] 
         text8: [1x1 UIControl] 
         text7: [1x1 UIControl] 
         text3: [1x1 UIControl] 
         edit2: [1x1 UIControl] 
         text1: [1x1 UIControl] 
        copyto: [1x1 Menu] 
        pastefrom: [1x1 Menu] 
         mfile: [1x1 Menu] 
    openResults: [1x1 Menu] 
    SaveResults: [1x1 Menu] 
    loadeqfile: [1x1 Menu] 
        output: [1x1 Figure] 
    

    あなたは奇妙な何かに気づくでしょう:

    • GUIが座標軸
    • そのプロパティHandleVisibilityあなたはguideを使用して、それをチェックすることができます(onで含まれているが)
    • それにもかかわらず、それはl guidata

    によって返さhandlesのISTこのコマンドでは、このミステリアスaxeshandleを取得することができます:

    logo_ax_handle=findobj(gcf,'type','axes') 
    

    今のデータへのアクセスを取得

    axes_data=logo_ax_handle.Children.CData;   
    
    このコマンドを軸にプロット

    実際にはロゴである54x192x3 unit8のマトリックスが表示されます。次のように

    あなたはそれを確認することができます。

    figure 
    axes 
    imshow(axes_data) 
    

    はすべてこのstranngeのthisngsを考慮すると、あなたの質問 に可能な答えができ:

    • GUIは、座標軸なしとで作成されています図のHandleVisibiliton
    • guideツール
    • 0123を使用して、軸を手動でGUIに追加しました
    • 画像、ロゴ、GUIは、GUIは、図のHandleVisibility properetyがcallbackに設定されているguide
    • で開かれたsavefig機能
    • とともに保存されている軸
    • に追加されています次のよう

    あなたはこの可能性をテストすることができます:と

    • 例えば、ちょうど
    • 内の「何か」を持っているだけでpushbuttoneditbox、 は、以下の例では(IをGUIを保存on
    • figure foがHandleVisibility properetyを設定メートル、でGUIを作成し、 「次に、電子を次のコードを実行し、それadd_axes_manually

    近いguideを呼び出しまし。 g。あなたがそれに気づくでしょうguidataへの二つの呼び出しの出力から、スクリプト(イメージの名前を変更します)

    add_axes_manually 
    guidata(gcf) 
    axes('unit','normalized','position',[0.08 0.4 0.3 0.3]) 
    imshow('Jupiter_New_Horizons.jpg') 
    savefig('add_axes_manually.fig') 
    add_axes_manually 
    guidata(gcf) 
    

    から:

    • 軸のハンドルが
    • diplaydされていませんGUIにロゴ(画像)が含まれています
    • ロゴがGUIに埋め込まれているため、 .jpegファイルも.mファイル
    • にロゴを挿入するファイルもコードもありません彼らはGUIの .mファイルに存在しない をしている間

    GUIが保存されているという事実は、「外部」guideツールは、あなたがそれを開くと、いくつかの式が表示されているという事実によって をサポートしているようです。

    希望この役立ちます、

    Qapla」

  • +0

    はあなたの助けをいただき、ありがとうございます。それはよく説明されています。私の問題を投稿する前に、私は奇妙な軸の子供たち(cdata)が見つかりましたが、手動で追加する方法はありませんでした。あなたのソリューションはとても賢明です。 – soft001

    +0

    よろしくお願いします!私はあなたに慣れてきました。 –

    0

    two ways to construct GUIs in MATLABは基本的にありますありがとう:プログラムガイド

    ガイドでは、グラフィカルな方法でuicontrol sおよびその他のオブジェクトを作成して位置することができます。 GUIが展開されると、GUIDEはMファイル内のuicontrolコールバックの関数を生成し、uicontrolのすべてのデータとGUIに含まれている他のグラフィックスオブジェクトのすべてのデータを含むFIGファイルを生成します。シンプルなレイアウトとシンプルなuicontol動作とGUIのためにこれを使用します(読み:あなたがこれまでに作成されます最ものGUI)

    、プログラムのことをやったとき、あなたはすべてのものを自分で行う必要がある - uicontrolポジショニング、コールバック、ロゴの位置をと表示、すべて。あなたが書いたM個のファイルだけを助けるFIGファイルはありません(通常)。 uicontrolビヘイビア、複数のサブGUI、タブ、MATLABとuicontrol間の複雑なやりとりなどの絶対的な制御が必要な場合は、これを使用します。はるかに難しいですが、それはあなたに絶対的なコントロールを与えます。

    リンク先のGUIは、GUIDEを使用して作成されているようです。 FIGファイルに埋め込まれているPNG/JPG /何でも。要するに

  • 関連する問題