問題タブ [matlab-uitable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
333 参照

matlab-figure - Matlab のコマンド ウィンドウに Uitable データを表示する

UITABLE を使用してデータを表示しています。テーブルを表示した後、コマンドウィンドウでデータをマトリックス形式で取得し、計算を行い、結果を表形式で再度表示します。任意の 1 pls。助けて..

0 投票する
2 に答える
4879 参照

matlab - 編集可能な uitable の変更をプログラムで保存する

Matlab で UItable を作成し、さまざまな値とオプションを入力しました。次のようになります。

ここに画像の説明を入力

対応するコードは次のとおりです。

コードを実行すると、Figure が開きます。したがって、基になるスクリプトは終了しました。テーブルを編集すると、uitable オブジェクトが変更され、終了後、次のようにして最終的な構成を取得できます。

ただし、スクリプトは既に終了しているため、この行を手動で入力する必要があります。この行をスクリプトの最後に置くと、エラーが発生します。

そこで、次のループを使用して、テーブルを閉じたことを検出し、最後の構成を保存することを考えました

setそして、ループ、スクリプト全体、を含むコマンドだけ、その他のものをすべて入れようとしましたcelleditcallbackが、何も機能しませんでした。スクリプトがループ内でスタックするか、値を編集してもテーブルの表示が更新されません。drawnow私も色々なポジションで挑戦しました。この状況をどのように処理しますか?最終結果を自動的に保存するにはどうすればよいですか? 「保存」ボタンを実装できるとは思わないため、「ウィンドウを閉じる」ことが検出するのに最適なアクションであると思います。も使用してGUIを作成しようとしましたGUIDEが、完全に迷子になりました。なしで解決したいと考えています。


編集:「保存」ボタンを実装できるようになり、次のようにコールバックを試しました:

CloseRequestFcnまた、Lucius Domitius Ahenobarbus の提案に従ってカスタムを実装しました。しかし、次のいずれかの問題があります。

1) すべてをスクリプトとして定義し、すべて正常に動作しますが、(実際には私のお気に入り)のような関数を定義するか@saveConfig@my_Closefcnワークスペース内の一意の関数ファイルとして定義する必要があり、正しいパラメータを渡すのに苦労していますdat実際には変更されますが、同じです。( mathworks サイトの例は機能しますが、追加のパラメーターは必要ありません。)

2)使用する場合

私は実装@saveConfigまたは@my_Closefcn直接(ネスト)することができ、パラメーターの受け渡しはうまくいくと思います。しかし、テーブルの編集が機能しなくなり、次のエラーがスローされます。

handle.handle/get の使用中にエラーが発生しました

無効または削除されたオブジェクトです。

uitable CellEditCallback の評価中にエラーが発生しました

それを解決する方法は?ボタンを uitable に追加することさえできることがわかったので、本当に避けたいGUIDEです。上記の私のコードは実行可能ですので、説明するのが難しいので、実際の問題が何であるかを確認していただければ幸いです。

0 投票する
3 に答える
2670 参照

matlab - 適切なポップアップ メニューが表示されないようにすることは可能ですか? または: セルをクリックしてコールバックを取得し、行と列のインデックスを返す方法は?

ユーザー インターフェイスについては、uitable. ユーザーは最初の列でオプションA、B、または Cを選択し、2 番目の列のサブオプションは、最初の列で選択されたもの ( A.1、A.2、A.3、またはB.1、B.2)によって異なります。またはB.3またはCについても同じ

ここに画像の説明を入力

表のコードは、付録 Aにあります。

ユーザーが最初にメイン オプションを定義すると、それに応じてサブオプションが自動的に削減され、有効な選択肢のみが表示されます。CellEditCallbackこれは、列 1 の を評価し、列 2 の をリセットすることによって実現されます。 (付録 BColumnFormat関数) ユーザーが間違いに気づき、サブオプションをもう一度編集する必要がある場合でも、 は以前に編集されたものに従って設定されます。メインオプションと有効な選択肢は、もう一度メインオプションを選択しない限り利用できません。(写真の青い強調表示を参照してください)。modifySelectionColumnFormat

これを解決するためにCellSelectionCallback、関数の呼び出しも実装しましたjustifySelection(付録 Bにあります)。これは、列 1 でどのオプションが選択されたかを選択してチェックし、列 2 に適切なサブオプションを再度提供します。しかし、このコールバックは選択に反応するため、を2 回選択するには、1 回は をトリガーしCellSelectionCallback、もう 1 回は実際に選択を取得します。大きなテーブルの場合、これは非常に煩わしい場合があります。

だから私の質問は:

対応する列 1 の内容がわかるまで、列 2 のポップアップ メニューがポップアップしないようにして、有効な選択肢をすぐに提供する方法はありますか?

または:

セルのマウス クリックを検出して、行と列のインデックスを取得するにはどうすればよいですか? しかし、次の選択を呼び出してアクションをポップアップすることなく?

私はすでに利用可能なすべてのプロパティをかき集めていましたが、役立つ可能性のあるものは何も見つかりませんでした. を使用して何かを実行できるかもしれませんButtonDownFcnが、セル インデックスを取得するにはどうすればよいでしょうか。プロパティはどうですかBusyAction、それを私の目的にどのように使用できますか?

何か案は?

非常に多くのコードであなたを爆撃する前に申し訳ありません.これはすでに最も最小限の例ですが、完全に実行可能であるため、試してみることができます.


付録 A/B


modifyPopup最後に、以下を書き換える単一の関数Columnformat:

バウンティ: なぜ +50 なのですか? - 最初の正しいアイデアがあれば、それは不可能か、答えは簡単だと思います。Java オブジェクトのプロパティなどを使用した複雑な回避策を探しているわけではありません。よろしくお願いします。


概要を維持するために、ここにコメントからの議論を含めます。

試してみたい場合は、コードをコピーし、次の手順に従って望ましくない動作を再現できます。

  1. 最初の行でメイン オプション A を選択します。
  2. 最初の行のサブオプションには、選択肢 A.1、A.2、および A.3 が含まれます。
  3. 2 行目のメイン オプション B を選択すると、2 行目のサブオプションの選択肢は B.1、B.2、および B.3 になります。
  4. しかし今、最初の行のサブオプションを (直接) 変更したいと考えています。A.1、A.2、および A.3 の選択肢が得られると予想されます。しかし、あなたはしません。B.1、B.2、および B.3 が提供されます。- 最後に選択した主なオプションが B だったからです (行は異なりますが)。

最後のオプションを探すのではなく、関連するオプションを見る必要があるようです。したがって、サブオプションをクリックすると「ルックアップ」が実行され、どのメイン オプションがあるかが確認されます。

それはまさに私が探しているものです! しかし、どうすればそれができますか?クリックを検出し、列と行のインデックスを取得し、右に設定して ColumnFormat、最後にセルをポップアップさせる方法。これまでに見た唯一の可能性は ですがCellSelectionCallback、セルが無効な選択肢ですでにポップアップした後に実行されます。のようなものが必要ClickedCallbackですpushbuttons

または、メイン オプションを選択すると、その行のサブオプションのみが設定されるようにします。

それは不可能です。変更する必要があるため、特定の行にサブオプションを設定することはできませんColumnFormat。これは、1 つの行だけでなくテーブル全体に影響します。

0 投票する
1 に答える
2178 参照

matlab - MATLAB uitable 論理チェックボックスがチェックされていない

MATLAB R2012b で GUIDE を使用しておりuitable、編集可能な論理チェックボックスがあります。Cell Edit コールバックは次のとおりです。

チェックボックスの 1 つをクリックすると、テーブル内のデータが適切に更新されていることがわかります (両方とも更新された値get(hObject,'Data')handles.checked(row)返します) が、GUI の実際のチェックボックスは視覚的にチェックされません。もう一度クリックすると、変数は再び更新されますが、チェックボックスはオフのままです。

したがって、データは更新されていますが、GUI は更新されていません。ここで何がうまくいかないのですか?

注: 論理チェックボックスは GUIDE で編集可能に設定されているため、これは問題ではありません。

0 投票する
2 に答える
1927 参照

matlab - ダブルクリックでのみ編集される表のセル

表のセルはクリックだけで編集できるので、ダブルクリックだけで編集できるようにしたいです。単純なクリックでセルが選択されます。

私はこのプロパティを使用していますuitable

0 投票する
1 に答える
1759 参照

matlab - matlab の uitable で popupmenu を使用する

たとえば、4 つの列で構成される uitable を作成しました。

私が今やりたかったことは、コードが実行され、最初のセルのポップアップで「Sweet」を選択すると、セル (1,4) に dat(1,1) が表示されるか、「 1 列目の 2 番目のセルの Beautiful' では、セル (2,4) に dat(2,1) が表示されます。uitable の外側の popupmenu とは異なり、get(popup,"value') を使用できません。

どうすればやりたいことができるでしょうか?前もって感謝します!