From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

LabVIEWのボタンプロパティーを使ったPythonコマンドヘルプ

解決済み
解決策を見る

LabVIEWのボタンプロパティーを使ったPythonコマンドヘルプ

 

ここ数年、研究開発から離れていて、戻ってきたら、機械学習や深層学習やらで、Pythonが大流行です。
私もPythonに取り組むことになりましたが、何せLabVIEWに慣れすぎてテキスト言語になじめないでいます。
LabVIEWはなぜ良いかと考えてみると、ブロックダイアグラムの関数パレットが使いやすいことにあると思いました。
テキスト言語だと、関数の最初の文字が思いうかばないとアウトですが、LabVIEWはとりあえず関数パレット眺めて、それらしいものがあれば詳細Helpを見て、何となく使えてしまうところがすごいと思いました。(パレットの項目分けが洗練されている。)
Pythonもこんな感じにできないかと思っているところです。(グラフィカルなものとしてScrachなどありますが。)

そこで、できれば関数パレットみたいなものを作りたかったのですが、技術がないので、ボタンのプロパティーの中にあるドキュメントにHelpの内容を書き込んだものを作ってみました(まだ、内容を入れていないものもあります。ヘルプは、Pyhton3の内容です。(LV2013で作成))。
(ボタンを押しても何も起こりません。理想は、ボタンを押したらそのひな形コードや、関数(メソッド)が入力されるとよいと思っています。)
スマートではなく力業のプログラムになってしまいました(ブロックダイアグラムを見てい頂ければわかると思います。)。
関数パレットのようなものの作り方をご存知の方や、この力業のプログラムをどう改良すればよいか、ご教授頂けると大変ありがたいです。
また、詳細Helpはテキストのみですが、HTML表記や画像など挿入できるかどうかもご存知でしたら合わせてご教授いただけるとありがたいです。

メッセージ1/3
2,732件の閲覧回数
解決策
トピック作成者Gyutanが受理

こんにちは。

VIを作って関数パレットに登録するのは、以下の方法でできますよ。でも今回の場合はVIをブロックダイアグラムに配置したいわけではないので、ちょっと方向性が違うでしょうか。

関数パレットまたは制御器パレットにVIまたはオブジェクトを追加する

http://zone.ni.com/reference/ja-XX/help/371361M-0112/lvhowto/add_object_to_subpalette/

 

>理想は、ボタンを押したらそのひな形コードや、関数(メソッド)が入力されるとよいと思っています。

これはイベントストラクチャにボタンクリックのイベントを追加して、ブールプロパティの「説明」を文字列表示器に表示させればいいと思います。ブールプロパティの「説明」に雛形コードを登録しておいて、雛形コードの手前にそれ以降が雛形コードであることを示す文字列パターンを置いておけば「パターンで一致」関数を用いて雛形コードの部分だけ取り出すことが可能です。

 

HTMLファイルは「デフォルトブラウザでURLを開く」を使って表示させることができます。

デフォルトブラウザでURLを開く (VI)

http://zone.ni.com/reference/ja-XX/help/371361J-0112/glang/open_url_in_browser/

画像ファイルなどを含めた詳しいヘルプはHTMLファイルで作成し、この関数で呼び出すのはどうでしょうか。オンライン上のpythonヘルプなどにもこの方法でアクセスできますよ。

 

pythonコマンドの使い方を表示するVIを作ろうとした場合、どうしても表示する内容の準備は必要になるため、ある程度力業になるのは仕方ない気がします。上記の情報がご参考になれば幸いです。

0 件の賞賛
メッセージ2/3
2,605件の閲覧回数

アドバイスありがとうございます。

>VIを作って関数パレットに登録するのは、以下の方法でできますよ。でも今回の場合はVIをブロックダイアグラムに配置したいわけではないので、ちょっと方向性が違うでしょうか。


PythonのIDE(AnacondaについてくるSpyderやJupiter)の横にアプリケーションとしてPythonHelpがあるイメージですのでちょっと方向は違いますが、これも参考になります。

その他、教えた頂いたテクニックを理解するために、自分なりに作ってみたテストプログラムを添付いたします。
(イベントストラクチャーで左に出ている制御器Refnumには気づきませんでした。また、URL開く関数も知りませんでした。LV2014にVersionアップしました。)
このテクニックを使ってもう少しブラッシュアップしてみたいと思います。

大変参考になりました。
ありがとうございました。

0 件の賞賛
メッセージ3/3
2,597件の閲覧回数