GTK_WIDGET_SET_FLAGS(button,GTK_CAN_DEFAULT);
gtk_widget_grab_default(button);
が何をするものか分かりません
buttonは
gtk_button_new_from_stock(GTK_STOCK_CLOSE);
によって作られたものです
実験をしたのですが動作に違いがないようです
GTK_WIDGET_SET_FLAGS
GTK_CAN_DEFAULT
gtk_widget_grab_default
の説明を読んでもいまいち理解でいません
やさしく解説してください
No.1ベストアンサー
- 回答日時:
dialog に button が2つ以上あるときは、
通常、どちらかを default button にします。
通常、enter key を押すと、その button が押されたように
反応します。default button は default であることを
示すため、二重枠で囲まれている場合が多いです。
VC++ では、リソースファイル(.rc)でよく指定します。
default 指定がないときは、必ずマウスでクリックしないと
選べませんが、default 指定があると、key 操作ができます。
GTK_CAN_DFAULT は button の default 属性指定でしょう。
gtk_widget_grab_default() は引数の button を default 指定に
するものでしょう。
通常、OK button を default にしますが、cancel button を
default にしてもよいわけです。
因みに cancel button には、ESC key を当てる指定も
できるでしょう。
幸いなことに、Macintosh, UNIX, Windows の GUI は
これらの処理が de facto で共通化されています。
まだ慣れておられないなら、GUI の説明をご覧になると
よろしいかと思います。Macintosh Application Standard とか
が参考になるのでは思います。
この回答への補足
ありがとうございます
GTK_WIDGET_SET_FLAGS(button,GTK_CAN_DEFAULT);
はbuttonのdefault属性指定でしょう。
gtk_widget_grab_default(button);
は引数のbuttonをdefault指定にするものでしょう。:
両方とも同じことをしているのならば1つでいいような気がしますね?
diarogではなく小さなWindowです
buttonは1つです
他にテキストボックス(gtk_entry_new()で生成)1つ
チェックボックス(gtk_check_button_new_with_label()で生成)2つが有ります
実験の結果:
(無い場合)
2重枠で無い
フォーカスがbuttonにあるときruturnを押すと終了する
buttonをクリックすると終了する
Alt+Cで終了する
ctnl+Cで終了しない
-----------------------
フォーカスがチェックボックスに有るときreturnを押しても終了しない(チェックの内容が変わる)
(ある場合)
2重枠で無い
フォーカスがbuttonにあるときruturnを押すと終了する
buttonをクリックすると終了する
Alt+Cで終了する
ctnl+Cで終了しない
-----------------------
フォーカスがチェックボックスに有るときreturnを押すと終了する
ということでこの場合は無いほうがむしろいいほどですね?
具体的にはプログラムは
http://www.gtk.org/tutorial/sec-textentries.html
(gtk+2.0のチュートリアルサイト)
の下にあります
No.2
- 回答日時:
goo で検索すると、使用例、説明例があります。
下記のURLはその一つです。→中の9.4参照方
尚、google では、これらの関数の使い方でうまく行かない
場合の質疑があります。
参考URL:http://www.kitanet.ne.jp/~asler/linux/gtk/ja/gtk …
この回答への補足
ありがとうございます
このプログラムをそのままコンパイルしてもエラーになるのでキャスティングしてエラーを回避しました
/* ボタンをデフォルトにするために行う */
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
/* これはこのボタンをデフォルトボタンに設定する。
"Enter" キーを押すだけでこのボタンは起動される */
gtk_widget_grab_default (button);
と有りますが最初のほうでデフォルトなれば後のほうはいらないような気がしますがなぜ2つもならべないといけないようにしているのでしょうね?
コメントアウトで実験したことによると
この場合もフォーカスがクローズ用ボタンに無くてもリターンでクローズできるようにするためだけのもののようですね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストエリア内の文字の装飾
-
Powered by FC2.comの文字サイズ
-
Format 関数 表示書式指定文字...
-
CSSでのフォントの種類指定
-
■(四角)の記述
-
jquery.validationEngine.jsカ...
-
文字の色をスタイルシートで設...
-
FC2ブログの改行幅の質問です。
-
リンク文字
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
ペイント3Dのテキストサイズ変更
-
PDFファイルを開かずに印刷...
-
outlook 文字を揃えたい。tab...
-
alertで表示させる文字サイズは...
-
フォルダ内の写真を画面幅にあ...
-
ユーザーフォーム スクロール...
-
EXCEL VBA 印刷プレビューダイ...
-
似ているフォント(Win⇔Mac)
-
CSSで文字に青や紫の枠線が出て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HLMT、CSSについて相談です。 ...
-
文字の位置、上下のマージンが...
-
リストの前後の行間をなくす方...
-
Format 関数 表示書式指定文字...
-
background-color: #ddd;の意味...
-
HTMLで特定の文字だけ色を変え...
-
全角半角含めて等幅で表示したい
-
リンク文字
-
テキストボックス途中で切れて...
-
テキストエリア内の文字の装飾
-
jquery.validationEngine.jsカ...
-
Excel VBA メール作成について ...
-
fontサイズ指定の ”-(マイナ...
-
特定の文字のみcssを適用するに...
-
Excel VBA メール作成について ...
-
ホームページビルダー作成HPがi...
-
API Sleep関数について
-
iframe 文字化け
-
FireFoxで"display = none"を指...
-
アコーディオンメニューが思う...
おすすめ情報