• 締切済み

Tcl/Tkを使ったメニュー表示について

現在Tcl/Tkを勉強しているのですが、 例えば、最初にこのようなメニュー(マイドキュメントのボタン)が表示され、 ┌────────────┐ │ ┌──────―─┐ │ │ │マイドキュメント│ │ │ └────────┘ │ └────────────┘ この領域内でマウスをクリックしたまま(押したまま?)領域の外(下方向)に出ると、 ┌────────────┐ │ ┌──────―─┐ │ │ │マイドキュメント│ │ │ └────────┘ │ │ ┌────────┐ │ │ │マイピクチャ  │ │ │ └────────┘ │ └────────────┘ このように新しいメニューが増えるように表示されるようにしたいのですが可能でしょうか? できればどんどん増えていくようにしたいです。 ┌────────────┐ │ ┌──────―─┐ │ │ │マイドキュメント│ │ │ └────────┘ │ │ ┌────────┐ │ │ │マイピクチャ  │ │ │ └────────┘ │ │ ┌────────┐ │ │ │マイミュージック│ │ │ └────────┘ │ └────────────┘       :       :       : あまり知識がないのでわかりにくかったらすいませんが、 困っているので是非力を貸してください。 よろしくお願いします。

みんなの回答

  • putra0
  • ベストアンサー率50% (4/8)
回答No.1

こういうことでしょうか? (↓) 上へ抜けたときにボタンが1つ消えるようにもしてみました。 ※インデントのために全角スペースを使っています。コピペしたらまず、 全角スペース2個をタブ文字1個に置換してくださいね。 ================================== proc main {} {   # f はボタンの親フレーム   global f   createWidgets   bind $f <B1-Leave> {onLeave %W %x %y}   wm geometry . 300x300 } proc createWidgets {} {   global f next buttons   set f [frame .buttonframe -relief groove -bd 2]   lappend buttons [button $f.b0 -text マイドキュメント]   lappend buttons [button $f.b1 -text マイピクチャー]   lappend buttons [button $f.b2 -text マイミュージック]   pack $f.b0 -fill x -padx 10 -pady 20 -fill x   pack $f -padx 20 -pady 20 -side left -anchor nw   # next は次に加えるべきボタンのインデックス   set next 1 } proc onLeave {w x y} {   set frameWidth [winfo width $w]   set frameHeight [winfo height $w]   # 左右から出ていないかチェック   if {$x >= 0 && $x < $frameWidth} {     if {$y >= $frameHeight} {       # 下から抜けた場合ボタンを増やす       showButton     } else {       # 上から抜けた場合ボタンを減らす       hideButton     }   } } proc showButton {} {   global next buttons   if {$next < [llength $buttons]} {     pack [lindex $buttons $next] -padx 10 -pady 20 -fill x     incr next   } } proc hideButton {} {   global next buttons   if {$next > 1} {     incr next -1     pack forget [lindex $buttons $next]   } } main

tnuak
質問者

補足

回答ありがとうございます!! 実際に動かしてみました。 下への動きがスムーズにできるようになっていました。 勉強になります! 現在自分でも試行錯誤して勉強中ですが、 自分の考えているメニューは、 ・まず、マウスのジェスチャでメニューを起動。(nrlaunchというランチャの起動の仕方をしたいです。参考URL:http://danna.biz/blog/2006/06/nrlaunch.html) ・最初に現れるのは1つの四角いアイコン。 ┌-┐ └-┘ ・ここをクリックしながら(押しながら)上下左右に動かすと、 マイドキュメントやマイピクチャのようなフォルダが1つずつ表示される。 ┌-┐ ┌――┐ ┌―――┐ └-┘→└――┘→└―――┘  ↓         ↓ ┌-┐      ┌―――┐ │-│      └――││ └-┘         └┘  ↓ ┌-┐ │-│ │-│ └-┘ というようなものを考えています。 このようなものも実現することは可能でしょうか? よろしくお願いします。

関連するQ&A

  • スタートメニューに「マイ ミュージック」が表示できない

    スタートメニューをクリックすると、メニューが左右に分割されていて、右側の部分に、「マイドキュメント」「マイピクチャ」「マイコンピュータ」などが表示されますが、「マイドキュメント」の中に入っていた「マイミュージック」のフォルダーを、「新しいフォルダ」を使って、別なフォルダにしたところ、スタートメニューに「マイミュージック」フォルダが表示されなくなってしまいました。スタートメニューのプロパティも確認しましたし、「マイドキュメント」の中に「マイミュージック」のフォルダも入れてあります。「マイドキュメント」「マイコンピュータ」など、インスツール時から設定されているフォルダーは、特殊なフォルダが使われているのでしょうか?スタートメニューにちゃんと表示されている「マイピクチャ」のフォルダのプロパティをみてみると、「カスタマイズ」がないようなんですが・・・。以前に使っていた「マイミュージック」のフォルダは消去してしまったため、復元できません。どうすればスタートメニューに「マイミュージック」の表示できるようになるんでしょうか。 

  • スタートメニューにマイドキュメントやマイピクチャを表示するには?

    スタートメニューにマイドキュメントやマイピクチャをメニューの 右にずっと表示できるようにするにはどうすれば良いのでしょうか? [スタート]メニュー」タブの「カスタマイズ」ボタンをクリックし、 「詳細設定」の「[スタート]メニュー項目」にそもそもマイドキュメントやマイピクチャの項目が存在しておらず簡単に表示させることができ ない現状です。

  • スタートメニューの?

    スタートメニューって言うんですかね? スタートを押して上にユーザー名が出て下によく使うファイルが表示されたりするあれです。 あそこの右上の所に ・マイドキュメント ・マイミュージック ・マイピクチャ ・マイコンピュータ が表示されます。 ここにマイビデオを入れたいのですが、入れ方がわかりません。 やり方ご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。

  • スタートメニューへの「マイミュージック」の表示方法は?

    winXPです。「マイドキュメント」の中の「マイミュージック」フォルダを削除したら、スタートメニューの中の「マイミュージック」の表示が消えました。 それで、もう一度、「マイドキュメント」内に新規作成で「マイミュージック」フォルダを作りましたが、今度はスタートメニューに登録されませんでした。 どうしたら、「マイピクチャー」や「マイコンピューター」の項目に並んで「マイミュージック」が表示されるようになるのでしょうか?

  • スタートメニューからマイピクチャが消える

    Windows XP SP2のパソコン2台でLANを組んでいます。 1台目(PC1)のD:\dataを共有(名前dadaで公開)し、PC1のマイドキュメントのリンク先を\\Pc1\dataに変更する。 2代目(PC2)のマイドキュメントのリンク先も、PC1と同様に\\Pc1\dataに変更する。 PC1→PC2の順で再起動する。 すると、PC2のほうで、スタートメニューからマイピクチャが消えてしまいます。(マイドキュメントは普通に開け、そこからマイピクチャも見ることができます。) スタートボタンのプロパティで、[カスタマイズ]-[詳細設定]の中では、マイピクチャは[リンクとして表示]のまま変化していません。 一度「表示しない」か「メニューとして表示」をしたあと、また「リンクとして表示」をすると、スタートメニューのマイピクチャが元に戻るのですが、また再起動などすると消えてしまいます。 何が原因なのでしょうか・・・。

  • 「スタート」メニューのリンク先?

    富士通のノートPCを使っています。 ローカルディスクCの空きが足りなくなったため、外付けのHDDを買いました。 そしてファイルを整理するため、マイドキュメントを丸ごと新しく買ったHDDのほうに移したら「スタート」メニューのマイドキュメントやマイピクチャ、マイミュージックのところからそれらのフォルダが開けなくなってしまいました。 「スタート」メニューのマイドキュメントなどの項目のリンク先の変更はどのようにやればよいのでしょうか?

  • Classic Shell について

    Classic Shellでスタートメニューを追加しました。 追加されたスタートボタンを押した画面にマイドキュメントやマイピクチャはあるのですが、マイミュージックがありません。 追加することは可能でしょうか。

  • 左下スタートを開いた画面右側メニューにマイドキュメント、マイピクチャ、

    左下スタートを開いた画面右側メニューにマイドキュメント、マイピクチャ、マイミュージック等のアイコンがありますが、 マイビデオのアイコンがありません。 ここにマイビデオのアイコンを作りたいのですが、どうすればよいでしょうか?

  • スタートメニューのショートカットについて

    クリックありがとうございます。 スタートメニューにマイドキュメント、マイピクチャ・・・ と続いていると思うのですが、マイピクチャをクリックしても 検索のウィンドウに飛んでしまいます。 また、スタートメニューの マイピクチャのアイコンや文字が書いてあるところを 右クリックしたら本来、「開く(O)」が太字になっているはずなのに、 「検索(E)」が太字になっています。 この状態になったのは、あるサイトでフォルダの中身が 見えやすくなると書いてあったのでやってみました。 その手順や説明なども一様書いときます。 マイドキュメントのフォルダを開くと、 左側にある無駄なスペースをツリー表示にするエクスプローラ表示にすることができるのです。 その方法は次のとおりです。 1.マイドキュメントを開く。 2.マイドキュメントを開いたら、その画面の一番上にある「ツール」を選ぶ。 3.その中から「フォルダオプション」を選ぶ。 4.その中から「ファイルの種類」タブを開く。 5.すると、「登録されているファイルの種類」という一覧表が表示されます。 6.その一覧の中から「(なし)フォルダ」という項目を選びます。 7.そして「詳細設定」ボタンをクリック。 8.すると、「explore」と「open」という項目が表示されます。 9.そこで「explore」を選択したまま、「既定に設定」ボタンをクリッします。 10.これで完了。 11.そして一度、マイドキュメントのフォルダを閉じます。 12.再度、マイドキュメントを開きます。 13.これで便利なエクスプローラ表示になります。 このようにマイドキュメントのフォルダ内で設定を変更するだけで全部のフォルダに適用になっています。 を試してみたらこうなりました。 マイドキュメントは普通に太字が「開く(O)」となっていて、 左クリックで開けます。 ご回答お待ちしております。

  • Classic Shellの使い方について

    Win8でClassic Shellを使っています。 スタートボタンを押して出る、メニューの右ペインに マイドキュメント、マイピクチャはあるのですが、ここに マイミュージックを追加したいのです。 追加方法をご存じの方がおられましたら、ご教示下さい。