質問するログイン新規登録

Q&A

2回答

304閲覧

shell script で yadを使用してフォームを作成したい

Android-student

総合スコア9

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2026/08/03 15:49

0

0

実現したいこと

shell script で yadを使用してフォームを作成したい。
フォーム上の機能としてフルパスでファイルを指定するテキストボックスを3つ配置する。
それぞれのテキストボックスは直接入力の他にドラッグ&ドロップでファイルを置くとそのフルパスをテキストボックスに表示する。
また、それぞれのテキストボックスにホバーによる注釈表示を可能とする。

発生している問題・分からないこと

①3つのテキストボックスそれぞれでドラッグ&ドロップによるファイルのフルパス入力ができない。
②3つのテキストボックスそれぞれでホバーが表示できない。
③テキストボックスの見出し、および入力したフルパスで全角文字があると文字化けする。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

①変数=$(yad --form
--height=1000
--width=1000
--field="aaa":TXT)
ではできなかった。
--field="aaa":TXT ””)
としても変わらなかった。

②変数=$(yad --form
--height=1000
--width=1000
--field="aaa"
--tooltip
--text="bb")
としてもホバーが出力されなかった。
--field="aaa"
--tooltip-text="bb")
としても変わらなかった。
--field="aaa"
--field-tooltip="bb")
としても変わらなかった。
--dnd
--text="bb"
--tooltip
とすると画面全体に対してホバーが1つ出力されるがテキストボックス単位に実行したい。

③処理の先頭で
export LC_ALL=ja_jp.UTF-8
export LANG=ja_JP.UTF-8
としても変わらなかった。
'$\Uxxxx'と1文字ずつ設定すれば可能かもしれないがより良い方法を知りたい。

補足

WSL2.0、Ubuntu22.04からVSCODEを起動し、VSCODE上でshell scriptをコーディングしている。
power shellの
$変数.AllowDrop=$true
$変数.Add_DragEnter({
$変数.Add_DragDrop({
によるドラッグ&ドロップによるファイルのフルパス入力と
$変数=New-ObjectSystem.windows.Forms.ToolTip
$変数.SetToolTip($ラベル変数,"bb")
によるラベルでのホバー表示
とほぼ同様の機能を上記の環境で実現したい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答2

0

①について。

どこからドラッグしていますか。
おそらくエクスプローラからだと思うのですが、おそらくできないのでは、と思っています。

ドラッグ&ドロップの処理は、ウィンドウシステムが制御しています。
エクスプローラであればWindowsのOS、WSLg(WSL上で動くGUI)であればX11かWaylandになります。
要は、管理している場所が違うんで、できないのでは、という話です。

実際、26.04にnautilus(ubuntuのファイルマネージャ)を入れてみて試してみましたが、nautilus同士のドラッグ&ドロップはできますが、エクスプローラからはできませんでした。

ただし、同じPC上で動いているものですので頑張ればできなくもない話で、実際クリップボードに関してはWindows <-> WSLg間のやり取りができているようです。
しかし、ドラッグ&ドロップに関してはそのような話は見かけませんでした。
この辺りは、ご自身でも調べてみてください。

あと、22.04はまだサポート中とはいえ古いので、WSLgのような最近の技術には対応しきれてないかもしれません。

ちょっと不確かな情報で申し訳ありませんが、もし何かの足しになれば幸いです。

投稿2026/08/05 23:36

katsuko

総合スコア3662

katsuko

2026/08/06 01:41

試しに、wSL上でnautilusからyadのフォームへdndすると、望み通りの動作になりました。26.04ですけど。
Android-student

2026/08/07 14:29

回答ありがとうございます。 ご指摘の通りエクスプローラから実施しようとしており、できませんでした。 nautilusにつきましては環境上、nautilus自体を起動することができませんでした。
guest

0

①ファイルパスを入力させるには :FL (ファイル選択専用フィールド)を指定する必要があると思います。
②フィールドごとにホバーツールチップを設定するには以下のように"!"で指定することができそうです。

--field="ファイル:FL!<ホバー表示させたい文章>"

③環境依存なので直接は分かりませんが、ubuntu側に日本語フォントが入っている・ロケール定義が生成されているか確認するとかでしょうか…。

投稿2026/08/04 05:31

yuyafujiwara

総合スコア99

Android-student

2026/08/05 13:51

回答ありがとうございます。 ①につきましては:FLでファイル選択専用フィールドが出現しましたがクリックするとファイル選択ダイアログに遷移してしまい、テキストでの入力やドラッグ&ドロップによる入力ができませんでした。 ②につきましてはホバーの表示ができませんでした。  --field="ファイル:FL!ホバー"  --field="ファイル:FL"!"ホバー"  --field="ファイル:FL" ! "ホバー"  --field="ファイル":FL!"ホバー"  を試しましたがどれもうまくいきませんでした。 ③は日本語フォントの登録が環境上できません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問