1 名前:login:Penguin [2001/07/22(日) 22:31] 俺の様な厨房プログラマーをある程度使えるようにまで育成して、和製糞ソフトを 大量量産するのが目的のスレッドです。 とりあえずGNOMEプログラミング(小学館)を買ってきました。 これから読んでみます。
428 名前:416 mailto:sage [04/03/22 23:36 ID:t6oDHj5H] 自己解決した。 pixbuf はアルファチャンネル持てました。
429 名前:login:Penguin mailto:sage [04/03/25 21:50 ID:JRhACcYQ] このスレみてる神さま、GTK2のぶあつい本をかいてください。おながいします。 というか、誰か執筆してるの?
430 名前:login:Penguin mailto:sage [04/03/27 01:01 ID:/QE+KWFL] このスレみてる神さま、Gtkmm2の本もかいてください。おながいします。
431 名前:login:Penguin mailto:sage [04/03/27 11:39 ID:8IBM4CMs] >>429 ,430 GGADで十分じゃん?
432 名前:login:Penguin mailto:sage [04/03/27 23:05 ID:ikpVq0kX] >>431 GGADて何ですかいのぅ 検索かけても、よう解らん
433 名前:login:Penguin mailto:sage [04/03/28 00:37 ID:ItaNUZEo] >>432 developer.gnome.org/doc/GGAD/ggad.html
434 名前:login:Penguin mailto:sage [04/03/28 01:44 ID:OsOSJi7C] ありがとう でも、C++が好きなので・・・ gtkmmは思いっきりC++してる。 英語のチュートリアルと格闘中、少しずつ解って来た
435 名前:login:Penguin mailto:sage [04/03/28 01:58 ID:2rXU3IHl] GGADはGNOMEが1.0だったか1.2の頃のものなので内容が古すぎなのが難点。
436 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [04/03/28 18:21 ID:p248nSiU] C++ 好きなら Qt の方が……(ゴホンゴホン
437 名前:login:Penguin mailto:sage [04/03/28 19:39 ID:JRuDttB9] >>436 前もどっかで書いたんだが、gtkmmに対するQtの有利な点て何? 独自のプリプロセッサ使ってる分汎用性低いし、STLとの相性も gtkmmの方が良さそうな気が。 具体的にはオフィシャルFAQの www.gtkmm.org/gtkmm2/docs/FAQ/html/index.html#id2432168 www.gtkmm.org/gtkmm2/docs/FAQ/html/index.html#id2432591 に対する反論が聞きたいです。 # 前に書いたときは、両方に通じてる人が少ないのか、反応なしだったなぁ。
438 名前:login:Penguin mailto:sage [04/03/28 20:09 ID:fUDrTxoN] >>437 Qt好き(というかgtkmmは触ったことない)なだけで別に有利と思って使ってるわけではない。 あくまで個人的な意見だけど。例えば >so that Qt classes can not be used easily with non-Qt classes. については他のライブラリと組み合わせたとしても、Qtで組むのはMVCな構造ならViewの部分だから View(Qt)がModelの(C++な)クラスを使うことはあっても逆はないから特に気にならない。 >In Qt, Containers and Layouts are separate classes, and child widgets must be added to both. というのもレイアウトにはQtDesigner使えるしあまり関係ない気がする。 逆にgtk+なアプリでgtkmm使ってる例の方が少ないと思うんだけどどうしてなんだろう。 ライセンス的にもGPL至上主義者以外にとっては有利なはずなんだけど。 とか言いつつちょっとgtkmm使ってみようかとは思ってるんだけど。 (素のgtk+はやる気が起きない...)
439 名前:login:Penguin mailto:sage [04/03/28 21:27 ID:JRuDttB9] >>438 なるほど、参考になったっす。 GTK使ってて直にC使う人が多いのは、まー惰性というか、文化ってやつじゃないでしょうか。UNIX環境では一番メジャーな言語でしょうから。 自分も、gtkmm使ってC++でやった方が効率的にできるんではないかと推測するんですが… # C++自体に下手に深入りしなければ :-p gtkmmを使ってる比較的メジャーなプロジェクトってないですかね。自分は寡聞にして存じません。 これも前どっかで書いたけど、Owenが以前言った(らしい)とおり、C以外の言語で開発したメジャーなGTKアプリがどんどん出てきて欲しいです。
440 名前:login:Penguin mailto:sage [04/03/28 22:31 ID:2rXU3IHl] gtkmmがgtk+ほど使われない理由の一つは単純に入れるものが増えて マンドラケってことじゃないかな。それはGARNOME使えや、ゴルァ! とか言いたくもなるけど。 しかしながら、GNOMEでもオフィスものになるとC++で書かれる傾向 が強くなってるような気がする。AbiWordのように素のgtk+を使って いるものもあるけど Inkscape www.inkscape.org/ Gestalter www.linotux.ch/gestalter/ Passpartout www.stacken.kth.se/project/pptout/ はgtkmmを使っている。
441 名前:login:Penguin mailto:sage [04/03/29 10:07 ID:VUEcUgl7] C MAGAZINEの2002年11月にQtの記事が出ていたので Qtを覚えてみようかと思ったけれど プログラムやライセンスなどに制約がありそうなのでgtkmm2にした gtkmm2はあまり使われていないのですね 日本語で解説したホームページが一件だけで悲しい。 ウイジットの大まかな解説だけでもあればだいぶ違うのに 英語のチュートリアルはなかなか大変
442 名前:login:Penguin mailto:sage [04/04/05 19:15 ID:y/kEmNyL] おたずねします。 Glib::ustringをstd::stringやchar*に変換するにはどうしたらいいのでしょうか 教えてください。
443 名前:login:Penguin [04/04/05 22:28 ID:y/kEmNyL] age
444 名前:login:Penguin [04/04/06 00:03 ID:GZxyDVkQ] 自己解決しました const char* Glib::ustring::c_str ( ) const というのを見逃してました。
445 名前:login:Penguin mailto:sage [04/04/06 21:32 ID:gcfhfboL] GTK#って日本語通る?
446 名前:login:Penguin mailto:sage [04/04/06 22:08 ID:qtjhbKpC] ここ見にきてる人ってどんなアプリ作ってるの? google で検索してみても gtk でアプリ作ってるっていう日本語のサイト はあまりない気がするし・・。古いの多いし・・。
447 名前:login:Penguin [04/04/07 01:30 ID:fxxNRgLA] >>446 今、新しいgtkmm2で作ってる
448 名前:login:Penguin [04/04/09 09:22 ID:E9wQ2At3] www10.plala.or.jp/always/develop/
449 名前:login:Penguin mailto:sage [04/04/09 10:32 ID:Y4el8t2X] >448 ネタ的に古かったので削除していたのだが、一応、復活させときました。
450 名前:login:Penguin mailto:sage [04/04/09 12:34 ID:MWyF42lQ] >>440 > gtkmmがgtk+ほど使われない理由の一つは単純に入れるものが増えて > マンドラケってことじゃないかな。それはGARNOME使えや、ゴルァ! > とか言いたくもなるけど。 GARNOMEっつーか、distroでパッケージ用意してもらうほうが先な気がする。 まぁGNOME Platform Bindingsに少し期待。 > Inkscape > www.inkscape.org/ … > はgtkmmを使っている。 ダウト。
451 名前:login:Penguin mailto:sage [04/04/09 13:53 ID:lHXUAkbr] 最初に手を出したのは、ファイルマネージャだった。 結局たいしたものにならず、音楽ファイル選択アプリと化してる・・。 >>448 gtk2化。期待してます。
452 名前:login:Penguin mailto:sage [04/04/09 14:30 ID:Y4el8t2X] >>451 CxplorerのGtk2化が終わったら、それを題材にやろうかと思っています。
453 名前:login:Penguin mailto:sage [04/04/11 01:42 ID:F5VYGb6q] GtkTreeViewについてはまった点を書いておきます。 cxplorer.sourceforge.jp/pukiwiki/index?%5B%5BPorting%2FGtkTreeView%2F%C3%ED%B0%D5%BB%F6%B9%E0%5D%5D gImageViewのソースに助けられました。
454 名前:login:Penguin mailto:sage [04/04/13 00:48 ID:Fj29gwyS] gtk_file_selection_new で出てくるセレクタに g_locale_to_utf8 って噛ませられるの? 日本語ファイル名が使えないのをなんとかしたいんだけど。
455 名前:login:Penguin mailto:sage [04/04/13 08:08 ID:l2SC64Ga] fedra (UTF8環境)で、何もしなくても表示・選択できてます
456 名前:login:Penguin mailto:sage [04/04/13 21:03 ID:Fj29gwyS] >>455 それはシステム自体でファイル名にも UTF-8 使ってるからだと思います。 従来の EUC-JP な環境用になんとかしたいんですが、やはりアプリ側では なんともならないのでしょうか?
457 名前:login:Penguin mailto:sage [04/04/13 21:35 ID:BLXcmJM7] >>454 エラーメッセージに出てるように、環境変数 $G_BROKEN_FILENAMES を指定すると 日本語の表示はできてるようだけど、他への影響あるのかな? やってみた?
458 名前:login:Penguin mailto:sage [04/04/13 22:18 ID:Fj29gwyS] >>457 できますた!アリガトン
459 名前:login:Penguin mailto:sage [04/04/16 16:40 ID:ZlX2qNUE] 外部アプリケーションからGTKアプリケーションに対して あるトリガを与えてやり、それを受けたGTKアプリが 自分の表示内容を変更ということをしたいのですが どうすれば良いでしょうか? 具体的には、あるデバイスの状態を監視する常駐アプリがあって デバイス状態が変化したら、そのアプリが複数のGTKアプリに作用し 内容を変更させたいです。 また、複数のGTKアプリ達に同期をとらせるという意味もあります。 linuxのシグナルを使っても良いかと思ったのですが GTKアプリの処理中に割り込まれて、内部状態を更新してしまったら めちゃくちゃになりそうで躊躇しています。 どなたかお知恵をお貸し下さい。 よろしくお願いします。
460 名前:login:Penguin mailto:sage [04/04/18 13:25 ID:V2Ifc6oG] >>435 "NO STARCH PRESS RELEASES THE OFFICIAL GNOME 2 DEVELOPER'S GUIDE" www.gnomedesktop.org/article.php?sid=1753 訳出キボンヌ。
461 名前:login:Penguin mailto:sage [04/04/18 19:03 ID:sSYSAFlA] >>460 GNOME2 がそろそろ広まってきたので、GNOME foundation でデベロッパー向けの 本を作るわ。という話。まずは英語版で、GLib や GTK、および GNOME の API にるいてのものになるらしい。 ヽ(´ー`)ノワーイ
462 名前:login:Penguin mailto:sage [04/04/18 20:21 ID:hFjMsHHm] www.nostarch.com/gnome_toc.htm によると Chapter 1: GLib Chapter 2: GObject Chapter 3: GTK+ Chapter 4: The GNOME Libraries Chapter 5: Glade and libglade Chapter 6: Additional Software Development Tools Chapter 7: GConf Chapter 8: GnomeVFS Chapter 9: Where to Go from Here Appendix A らしい。Bonoboが独立した章がないのがちと気になるが、GNOME Platform に関しては一通り網羅しているのではないかと思われる。
463 名前:login:Penguin [04/04/29 00:23 ID:zLrJuv9t] (*^.^*)
464 名前:login:Penguin [04/04/29 13:25 ID:AQIokWzV] Linux上でWindowsバイナリをコンパイル出来ませんか?
465 名前:login:Penguin mailto:sage [04/05/03 21:07 ID:M0W8aY3U] 関数 g_strdup_printf などは「必要なくなりしだい解放してください」と 指示されているのですが、自作関数中で その値を return で返したいときは どのようにしたらよいのでしょうか?
466 名前:login:Penguin mailto:sage [04/05/03 22:08 ID:8XBp00PD] >>465 returnをもらった側で処置するべし。
467 名前:465 mailto:sage [04/05/04 07:40 ID:gonpR3ix] >>466 ありがとうございます。さっそく、組み込んでみようと思い、以下のように してみましたが、これで大丈夫でしょうか? よろしければ添削お願いします。m(_ _)m /* g_strdup_printf の返り値を返す関数(失敗時は NULL を返す) */ gchar *use_g_strdup_inside(void); void hoge_callback(StructData *struct) { if (struct->filename != NULL) g_free(struct->filename); struct->filename = use_g_strdup_inside(); } gint main_process(foo bar) { StructData *struct = g_malloc(sizeof(StructData)); (略:struct の参照渡し) gtk_main(); g_free(struct); /* これで struct->filename も一括解放? */ return 0; }
468 名前:login:Penguin mailto:sage [04/05/04 07:42 ID:gonpR3ix] ああ、全角スペース使うんだったorz
469 名前:login:Penguin mailto:sage [04/05/04 10:11 ID:3Qvo40ij] >>467 いわゆるC FAQの7.23と7.24を読んだら? (ちなみにglibのソースをみたらg_freeは標準のfreeをよんでるだけですた) ついでに 1.30も読んだ方がいいかも
470 名前:login:Penguin mailto:sage [04/05/04 10:47 ID:g8hk2YfL] >>467 g_free(struct)でstruct->filenameのポインタは解放されるが、そのポインタの指し示す先までは解放してくれない。なので g_free(struct->filename); g_free(struct) という手順を踏む必要がある。
471 名前:467 mailto:sage [04/05/04 11:57 ID:gonpR3ix] >>469-470 ご回答ありがとうございます。 C FAQ 勉強になりました。さっそく struct の宣言の次で struct->filename = NULL; と初期化するようにしておきます。
472 名前:login:Penguin mailto:sage [04/05/04 13:36 ID:A/bfn0Zs] どうせならglibのソースも読んでみるといいかも。
473 名前:login:Penguin mailto:sage [04/05/05 13:19 ID:LzNkuX/q] GtkItemFactory を使って www.kitanet.ne.jp/~asler/linux/gtk/ja/gtk_tut_ja-13.html#ss13.4 に例示される方法でメニューを作成したのですが、 以下のようなメニューのコールバック関数 callback_example(gpointer data, guint action, GtkWidget *widget) を作り、その中で gtk_widget_get_toplevel(widget) をしても、 メニューを含包しているトップレベル・ウィンドウを返してくれません。 また、gtk_widget_class_path(widget, NULL, &path, NULL) でつながりを調べると、 例の中にある menubar では、GtkWindow.GtkVBox.GtkMenuBar となりますが、 上記コールバック関数では、GtkWindow.GtkMenu.GtkImageMenuItem となり 思ったとおりに継承(?)していないようであることがわかりました。 そこで、これら2つのウィジェットを GtkWindow.GtkVBox.GtkMenuBar.GtkMenu.GtkImageMenuItem のような感じに接続することはできないでしょうか?よろしくお願いします。
474 名前:login:Penguin mailto:sage [04/05/05 14:13 ID:AJVBY2RD] >>473 クリックした時に出てくるメニュー部分って、メニューバーやその親とは 直接関係のない独立したウィンドウになるので、無理と思われ。 なので、callbackには別の方法で情報を与えることになるでしょう。 例えば、gtk_item_factory_create_items()の最後の引数として与えた ポインタが(例ではNULLになっている)、callback関数の最初の引数 dataとして得られます。使ったはことないけれど、 gtk_item_factory_create_items()の代わりに、メニューのアイテムの 数だけgtk_item_factory_create_item()を使えば、メニューアイテム ごとにcallback引数を変えられるかもしれない。 が、一番の問題は、GtkItemFactoryがGTK+-2.4ではdeprecateされ てしまっていることかもなー。
475 名前:login:Penguin mailto:sage [04/05/05 17:48 ID:LzNkuX/q] >>474 根本的に無理なわけですか・・・。 deprecate の件もイタいですが、当面の互換性を優先して 細々と工夫して使っていきたいと思います。 ご回答ありがとうございました。
476 名前:login:Penguin [04/05/13 04:33 ID:d+lRJudN] g_strsplitでseparatorに0x01を指定したいんですが、 どうやって表記すれば良いのでしょう。 g_strsplit(in,0x01,-1)や(in,"^A",-1)では warning: passing arg 2 of `g_strsplit' makes pointer from integer without a cast と怒られてしまいます。
477 名前:login:Penguin mailto:sage [04/05/13 07:38 ID:NPGa5jCl] >>476 g_strsplit(in,"\1",-1) だと思うのだが・・。
478 名前:476 [04/05/13 14:03 ID:d+lRJudN] >>477 ありがとうございました。 ばっちりでした。 って言うかC言語を基本から勉強しないとだめっすね。
479 名前:login:Penguin mailto:sage [04/05/13 22:36 ID:gc1S+I63] くだらない質問ですいません。 垂直スケールウィジェットを作成すると、上が最小値で下が最大値になるのですが、 一般的な感覚って下が最小値で上が最大値ですよね? 逆にすることはできないのでしょうか?
480 名前:login:Penguin mailto:sage [04/05/13 23:09 ID:btwft/BK] gtk_range_set_inverted()あたりは試した?
481 名前:479 mailto:sage [04/05/13 23:20 ID:QSU6qp6Q] >480 ありがとうございます。 絶対逆にする関数があるはずだと思っていたのですが、探し当てることができずにいました。 たすかりました。
482 名前:login:Penguin [04/05/16 23:55 ID:irWPIKTr] リファレンスマニュアルにはシグナルの一覧とコールバックの型なんかは書いて あるけど、そのシグナルがどんな時に出るか書いてないみたいです。 名前からわかるのはいいのですが、そうでない場合にシグナルがどんな時に出るかを 調べるにはどうすればいいんでしょう? 今は、全てのコールバック関数を書いてみて試したり、ソース読んだりしてますが、 遠回りしてる気がするんです・・。
483 名前:login:Penguin [04/05/20 14:27 ID:76aPgkOx] 本当にそうだと思う チュートリアルのサンプルプログラムを見て覚えるしかないのかなぁ
484 名前:login:Penguin mailto:sage [04/05/20 23:23 ID:jcLcMA6y] 本当に本当にそうだと思う。 いま、gtkを使い始めたがそう感じたよ。 と言いつつも俺の探し方が甘そうなのでsage
485 名前:login:Penguin mailto:sage [04/05/20 23:29 ID:6iu3BFuD] ならキミが調べた結果を本にまとめて売り出せばウハウハなんじゃねーの?
486 名前:login:Penguin mailto:sage [04/05/21 21:48 ID:L27/iJm2] >>482 わからんシグナルって例えば何?
487 名前:login:Penguin mailto:sage [04/05/31 11:40 ID:fLelOzr3] GTK+(Glade)でGUIアプリを作成しています。 作成したアプリのアイコンを設定したいのですがどうすれば良いのでしょうか? また、アイコンのフォーマットは*.icoとかをそのまま使えますか?
488 名前:login:Penguin mailto:sage [04/05/31 16:46 ID:0eRi0Au3] 質問です。 GTK+ 1.2をつかっていろいろ試しているところなのですが、 ScrolledWindowをつかうとマウスでぐりっとやるとウィンドウがスクロールしてくれます。 でも、PageUpとかPageDownなどキー操作ではスクロールしてくれません。 どうすればいいですか? どの辺を調べれば良いかキーワードだけでも教えてください。 よろしくお願いします。
489 名前:login:Penguin mailto:sage [04/05/31 17:23 ID:l37/WI1m] >>488 GtkWidget の key_press_event でどう?
490 名前:488 mailto:sage [04/05/31 18:31 ID:0eRi0Au3] >>489 お返事ありがとうございます。 そして、舌足らずでごめんなさい。 key_press_eventを使うというのは分かるのですが、 そのハンドラの中に何を書いて良いか分からないんです。 ScrolledWindowの関数の中に上にスクロールするとか そういうの無いみたいなので… 出来の悪い子でホントにごめんなさい(つдT)
491 名前:login:Penguin mailto:sage [04/05/31 19:47 ID:xnMi74Da] >>490 GtkAdjustment
492 名前:488 mailto:sage [04/06/01 12:17 ID:b9B2HGyQ] >>491 ありがとうございます。 調べてみます。
493 名前:login:Penguin mailto:sage [04/06/01 14:51 ID:sWrdsXk5] Gtkに関して教えてください。 「GTK+入門 基礎から〜」を購入して勉強しているのですが、 下記のプログラムで「gtk_widget_set_size_request」を 実行しようとすると「undefind referenec to 'gtk_widget_set_size_request」 とエラーが表示されてしまいます。 コメントアウトすればエラーは出ません。 gtk/gtk.hもインクルードしてありますし何が悪いのかさっぱり分かりません。 window = gtk_window_new( GTK_WINDOW_TOPLEVEL );↓ gtk_widget_set_name( window, "window" );↓ gtk_widget_set_size_request( window, 480, 280 );↓
494 名前:login:Penguin mailto:sage [04/06/01 15:51 ID:vmS5jmyS] >>493 検索してみたらその本は第2版が出ているようなので、実は古い版だったりしませんか? gtk_widget_set_size_request()は1.0→1.2で削除されたような覚えがあるので、 gtk_widget_set_usize(), gtk_widget_size_allocate()あたりで代用してみるとか。
495 名前:login:Penguin mailto:sage [04/06/01 15:56 ID:f2RT8NBI] >>493 developer.gnome.org/doc/API/2.0/gtk/gtk-changes-2-0.html のページ内でその関数を検索するがよろし
496 名前:493 mailto:sage [04/06/01 16:41 ID:sWrdsXk5] >> 494, 495 有り難うございます。 gtk_widget_set_size_request()→gtk_widget_set_usize()にしたらエラーは出なくなりました。 495さんに教えて貰ったページを見ると、 私の英語力ではgtk_widget_set_usize()を止めて、 gtk_widget_set_size_request()に変更しろと 書いてあるように思うのですが・・・
497 名前:login:Penguin mailto:sage [04/06/01 18:53 ID:+dAqMRbG] >>493 gtk_widget_set_size_request() は gtk+-2.0 で新しくできた関数。 gtk2 のリファレンスを見ながら、gtk1 を使ってプログラム してると思われる・・・。 統一しる! 変なこだわりがないなら gtk2 に・
498 名前:488 mailto:sage [04/06/01 21:30 ID:6DgPX5ay] >>491 先生!出来ました!! gtk_scrolled_window_get_vadjustment と gtk_adjustment_set_value ですね。ありがd。
499 名前:login:Penguin mailto:sage [04/06/02 11:16 ID:Ph5YiCQq] >>487 tar xzvf 素酢-x.x.x.tar.gz cd 素酢-x.x.x/src grep icon * いちおう。
500 名前:login:Penguin mailto:sage [04/06/06 03:39 ID:7NlghlPT] 500get
501 名前:login:Penguin [04/06/06 04:10 ID:XtA0mCdQ] 3日と16時間23分、誰も取ろうとしなかった500ゲトおめ(w
502 名前:login:Penguin [04/06/06 10:31 ID:YeSwYVrz] GtkComboで今何番目のリストが選択されているかを知るにはどうすれば良いのでしょうか? 1個目→A 2個目→B 3個目→C となっていて、2個目が選択されている場合に「B」という文字ではなく、 「2」という数値を取得したいのです。
503 名前:login:Penguin mailto:sage [04/06/06 11:38 ID:prFiANc0] GList の中から文字列を検索するのはどうよ? GList は要素を指定してその位置を返す関数があったような気がする。
504 名前:502 mailto:sage [04/06/08 14:03 ID:PyaDVVHB] レス遅れてすいません。 教えて貰ったことを踏まえて、 色々調べたり悩んだりしたのですが、 結局力業で処理してしまいました。
505 名前:login:Penguin [04/06/23 23:57 ID:MDTSH8fN] しばらく反応がないのでage で、質問ですが、mngのgdk-pixbuf loaderって、どこかにあります? ぐぐって見ると、去年のgtk-develでmng loaderの話が出ているのですが、 libmng方で問題があるとかいう発言以降、何の動きもないみたいです。 mail.gnome.org/archives/gtk-devel-list/2003-June/msg00070.html
506 名前:login:Penguin mailto:sage [04/06/25 22:53 ID:s+nmqGmL] GTK+/GDKによるLinuxアプリケーション開発 Eric Harlow著に載ってるソースコードって どこからかダウンロード出来るのでしょうか? 記載されてるページへいってもNOT FOUNDなもんで、、、
507 名前:login:Penguin [04/06/26 02:07 ID:ot6kutpS] >>506 ttp://www.seshop.com/detail.asp?pid=696 の左側 「関連リンク」の サンプルダウンロードからダウンロード可能
508 名前:login:Penguin mailto:sage [04/06/26 02:25 ID:ot6kutpS] こっちが本家のようです。 ttp://www.informit.com/title/0735700214# の 0735700214.tar.gz
509 名前:login:Penguin mailto:sage [04/06/26 03:04 ID:uwUdg/T9] >>507 ,508 DLできました。 有り難うございました
510 名前:login:Penguin [04/07/01 14:49 ID:2+uzpSCS] GTK+ 2.0 チュートリアル 2003-01-24 版 日本語版 www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html
511 名前:login:Penguin [04/07/02 20:41 ID:ruSxXmGR] Labelの色を指定するのはどうすれば良いのでしょうか? リソースファイルではなくてプログラム中で変更したいのです。 同じラベルに対してokなら青errorなら赤みたいに。
512 名前:login:Penguin mailto:sage [04/07/02 20:49 ID:EdA1krgC] label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL(label), "<span foreground='red'>red</span>"); では?
513 名前:login:Penguin mailto:sage [04/07/02 21:07 ID:NFwwiccW] >>511 www.gnome.gr.jp/docs/gtk+faq.20040114.html#AEN811
514 名前:511 [04/07/02 22:06 ID:ruSxXmGR] >>512 おおお、こんなに早くレスがつくとは思いませんでした。 gtk_widget_set_colormapあたりかと思って悩んでました。 ありがとうございました。
515 名前:login:Penguin [04/07/17 01:44 ID:gxRBMExw] gtk_signal_connect(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(KeyPress), NULL); でコールバック関数を登録し、 static void KeyPress(GdkEventKey *event) { g_print("%x\n",event->keyval); } } これで押されたキーを判別しようと思ったのですが 実行結果はどのキーを押しても 0 と表示されてしまいます。 何か使い方が間違っているのでしょうか? それとも、仕様ですか?
516 名前:515 [04/07/17 01:45 ID:gxRBMExw] ↑ 余計な閉じ括弧がひとつありますが、書き込み時に間違えて入力してしまったものです。 気にしないでください。
517 名前:515 mailto:sage [04/07/17 02:05 ID:gxRBMExw] 自己解決しました。 お騒がせしました。
518 名前:login:Penguin [04/07/20 21:04 ID:mCNuObfQ] X11^^^^
519 名前:login:Penguin [04/07/21 13:46 ID:q4gHD8Am] 質問です。 gtk_widget_refってどういう目的で使うのでしょうか。 glade使うとwidgetをcreateした後に必ずついてくるんですが gtk_widget_refを使わないでcreateするだけだと 何かまずいことが起こるんでしょうか。
520 名前:login:Penguin mailto:sage [04/07/22 16:23 ID:y/5s047B] >>519 >glade使うとwidgetをcreateした後に必ずついてくるんですが >gtk_widget_refを使わないでcreateするだけだと >何かまずいことが起こるんでしょうか。 glade 使うと gtk_object_set_data_full してるからgtk_widget_ref は、おいといたほうが良いと思う。 起動から終了までの間にウィジットを破棄したりしないなら gtk_widget_ref は不要とか言うのは無謀かな?よくわかってないけど。
521 名前:login:Penguin [04/07/31 10:39 ID:MPOS1TDH] Window全体に影を付けたいのですがパッチとかないですか?
522 名前:login:Penguin mailto:sage [04/08/06 15:14 ID:IQdNzkhX] 1はいずこ...
523 名前:login:Penguin mailto:sage [04/08/25 15:55 ID:j+IRN/yq] GtkGLExtの日本語マニュアルは無いのか…まぁ訳すけれど… 作者日本人だよな。なんか複雑。
524 名前:login:Penguin mailto:sage [04/08/25 20:34 ID:i4j2Wyy5] >>523 日本語だと解説やマニュアルどころか、情報自体がないな・・・。 どころか、英語でも状況はかわらなさそう・・・。 使ってる人いるのか?と思ってしまう。
525 名前:Exampleに数時間気づかなかった人(1/20) mailto:sage [04/08/26 13:56 ID:9NdnJg9X] >>524 mail.gnome.org/archives/gtkglext-list/index.html あちらの国でのメーリングリストを見ると大して人気があるようには見えない。 評価用の2画面同時表示とかサンプルのようなソースの疑問点?の質問が多いね。 gtkglext.sourceforge.net/ どーでもいーがサイトにあるlogo.cは、インストールした中のExampleの ソースのままなので、Exampleの下からlogo.hとかを持ってこないと表示できない。
526 名前:login:Penguin [04/08/29 01:43 ID:I8sIe2mZ] Gtkのイベント(シグナル?)についてお聞きしたいのですが、 独自イベントを作ってgtkのメインループの中でハンドリングするには どのようにコーディングすればよいのでしょうか? よろしくお願いします。
527 名前:login:Penguin mailto:sage [04/08/29 18:32 ID:0ci6kHoF] スクロールバーが付いたテキスト入力の領域を作るにはどうすればいいのでしょ うか? scrolled_window = gtk_scrolled_window_new(NULL, NULL); でscrolled_windowを作り, text = gtk_text_new(NULL, NULL); でテキストウィジェットを作り, gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), text); としてみましたが,スクロールバーが一杯になっていて全くスクロールできません. www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html こことかを見てみましたが,一行入力のテキストエントリしか書いてなかった のでわかりませんでした.この方法ではできないのでしょうか?初歩的な質問 ですみません.
528 名前:login:Penguin mailto:sage [04/08/29 20:56 ID:3dMcPoCy] >>527 gtk_container_add (GTK_CONTAINER (scrolled_window), text);
529 名前:527 mailto:sage [04/08/29 23:43 ID:0ci6kHoF] できました!ありがとうございます.
530 名前:login:Penguin [04/09/02 19:50 ID:UwBORxvn] windowをマウスで左クリックしたら「クリックしたよ!」というメッセージを出すプログラムを 書こうと思い、eventの中からマウスで左クリックしたeventを取り出して標準出力するつもり のプログラムを書いたのですが、意図した通りに動いてくれません。おそらくイベントハンドラ のところがおかしいのでしょうが、どのように書けばよいでしょうか? --------- #include<gtk/gtk.h> #include<stdio.h> static gboolean click_event(GtkWidget *widget, GdkEventButton *event, gpointer data){ if(event->type==GDK_BUTTON_PRESS && event->button==1){ g_print("Mouse clicked! \n"); } return FALSE; } int main(int argc,char *argv[]){ GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window), "event", G_CALLBACK(click_event), NULL); gtk_widget_show(window); gtk_main(); return(0); }
531 名前:login:Penguin [04/09/02 21:27 ID:B1qwsflf] >530 Xlibをインクルードしていないじゃないか。 それではメッセージは受け取れないな。
532 名前:login:Penguin mailto:sage [04/09/02 22:24 ID:Iz+TckRx] >>530 window でマウスのイベントを取ってどうするんだ、というのは置いといて・・。 window のイベントマスクを設定する。
533 名前:MyDoom被害経験者(当時は深刻) [04/09/06 00:41 ID:vttGuatR] GtkとKDE/Qtでは、どちらがGUI programmingを始め易いんでしょうか? コード量の少なくて済む方を教えてください。
534 名前:login:Penguin mailto:sage [04/09/06 00:48 ID:yRhIRqUd] >>533 お手軽なほうがいいってんならTcl/Tkやっとけ。コード量少なくてすむぞ。(藁 それぞれのサンプルコード見てこっちが性に合ってるな、とか、KDEメインに使ってるからQtとかないのかね。 どっちにしたってGUIプログラミングする分にはコード書くし、量的に差があるったって鼻毛みたいなもんだよ。;-p
535 名前:login:Penguin mailto:sage [04/09/06 02:35 ID:mXXgruj5] CがいいかC++がいいかで選んだら?
536 名前:login:Penguin mailto:sage [04/09/06 08:07 ID:j+KxsIhK] >>533 この質問、やたらあちこちで見るな。
537 名前:login:Penguin mailto:sage [04/09/06 12:41 ID:fIwSWiYt] サポートしてる言語がやたら多いのはGtk+。 C++, Python, Ruby, Perl, Scheme, Tcl, PHP, Java, C#, OCaml, Haskell みたいに 実用一辺倒から Research Language までいろいろ。 ただ完成度やドキュメントの整備状況は言語でまちまち。 Qt はその仕組み上そういうバインディングが作りにくいそうな。数少ない バインディングも Qt2 にしか対応して無いのが多い。
538 名前:login:Penguin mailto:sage [04/09/06 14:20 ID:mXXgruj5] Gtk+はバインディングが充実してるものの情報が少ない、ともいえる。 また、CがデフォなだけにC++でさえ情報が少ないっつーのが難点。 Qtのバインディングで実用レベルなのはPythonくらいだが、これは結構 情報も多くしっかりしてる。 両方やってる感じでは、言語で選ぶならC++かPythonならQt、それ以外 ならGtk+ってのが妥当だと思う。もちろんツールキットにあわせて言語 を選ぶなら好きにしてくれってことだが。
539 名前:login:Penguin mailto:sage [04/09/06 16:38 ID:iCHw81Ws] あと、あまり気にしないとは思うがシェアウェア化とか商用にするのなら Qtはライセンス購入が必要になる(QPL) 厳密にはGtkもGPLなのでオープンソースが義務付けられたり、色々あるんだが… オレ的ルールを使用する会社等は「ライブラリの改変をしなければ使いたいホーダイ」という有様。 何の為に勉強しているかは知らないが、オレの勝手なイメージでは Gtk: オープンソースしていいクリエーター 一般的な研究者 小中企業 Qt: コアな研究者 大企業 が使用している。 あと勘違いしている人が多かったんだけれど、 どちらも英語の読解力は必要(Linuxをやっていたら常識とは思うが) Gtkを表面だけ理解するなら日本語のドキュメントだけで事足りる。 Qtは最初から英語のドキュメントとにらめっこすることになる…かもしれない。
540 名前:login:Penguin mailto:sage [04/09/06 17:03 ID:X3pm9qox] Gtk+ は LGPL なので商用ソフトウェアも開発可能ですが
541 名前:login:Penguin [04/09/07 22:03 ID:/BPz6lrP] ウインドウをクリックしたらそのウインドウサイズを取得したいのですがどうすればできますか?
542 名前:login:Penguin mailto:sage [04/09/07 22:13 ID:CyRP0Tn+] >>541 クリックで起動されたコールバックの中で gtk_window_get_size
543 名前:login:Penguin [04/09/07 22:43 ID:/BPz6lrP] >>542 さんきゅー。できました!
544 名前:login:Penguin [04/09/07 23:54 ID:4Dablgl8] Gtkにラッパーとかかませて、UNIX(LINUX)とC/C++でWin32のようなプログラミングできるようにした環境って ないのかな。 (つまりCreateWindow〜CALLBACK WNdProc〜GetMessageのような流れで作る環境)
545 名前:login:Penguin mailto:sage [04/09/08 00:46 ID:k2AJ7vTU] gtkmmでは不満?
546 名前:login:Penguin mailto:sage [04/09/08 01:11 ID:mJ44H/or] マルチプラットフォームを考えてるならwxWidgetかな。
547 名前:login:Penguin mailto:sage [04/09/08 03:30 ID:U5iHDCUQ] >>544 そりゃあ、無いでしょ。Windows上ですら、制作者はWin32 APIを直に使って アプリケーションを書きたいなんて思わないんだから。
548 名前:login:Penguin mailto:sage [04/09/08 03:56 ID:TMOl9BnE] >>546 UNIX USERの特集で興味が沸いたんだけど、 他に書籍か雑誌の資料で良いのないかな?
549 名前:login:Penguin mailto:sage [04/09/08 11:27 ID:ktyLyrud] >>548 とりあえずム板ののひょーんスレでも覗いてみたら?
550 名前:login:Penguin [04/09/08 15:23 ID:wSTR0Xhj] GTK2のプログラムをライブラリ化しようとしてautomakeやautoconfを使ってconfigureを作ろうと したのですが、 gtk/gtk.h: そのようなファイルやディレクトリはありません というエラーがでます。自分の手でMakefileを書いた時にはこんなエラーは起きなかったのですが Makefile.amやconfigure.acに何か特別に書かなければならないことがあるのでしょうか?
551 名前:550 [04/09/08 17:39 ID:wSTR0Xhj] 自己レス できた。三時間ぐらい調べるのにかかってしまった。。。 configure.acに AM_PATH_GTK_2_0(2.0.0,, [AC_MSG_ERROR(Test for GTK failed.)]) とか書いてやると、ライブラリパスやらヘッダパスやらがGTK_CFLAGSやGTK_LIBSに定義される。 それをMakefile.amに INCLUDES = @GTK_CFLAGS@ LIBADD = @GTK_LIBS@ と書けばOK。GTKの他にgtkglextとかを使いたいのなら/usr/share/aclocalにあるgtkglext.m4の しょっぱなにあるコメント欄を見て、GTKと同じようにマクロを呼び出してMakefile.amにパスを書き込む。
552 名前:login:Penguin mailto:sage [04/09/08 18:16 ID:ROF7GWcX] >>549 さんきゅ。前の名前であったのね。 |【GUIライブラリ】wxWindowsでのひょーん |pc5.2ch.net/test/read.cgi/tech/1052186697/l200
553 名前:login:Penguin mailto:sage [04/09/08 19:55 ID:aC9UlW7m] PKG_CHECK_MODULES() もあり。
554 名前:546 mailto:sage [04/09/09 06:22 ID:krUgg33f] >>548 wxWidgetsのソースをダウンロードすると、 たくさんのサンプルがついてるので、それが結構参考になると思います。 中には古いのがあったりするのですが、大よその概念はつかめると思います。 米AOLのインストーラーとかに使われてて、Windows/Linux/Mac OS Xでいけてるみたいなので、 商用レベルにはなっていると思います。
555 名前:login:Penguin mailto:sage [04/09/11 22:08:37 ID:2jzJ2iMt] 華麗に555げっと。
556 名前:login:Penguin mailto:sage [04/09/15 00:00:14 ID:XXdKtByK] widget やシグナルのことを知りたくて、The Glib Object system っていう チュートリアルを読んでるんですが、くじけそうです・・。 gtk のチュートリアルと Glib Object systemのチュートリアルの間を埋める ようなレベルの説明って、どこかにないでしょうか? 以前、GTKハッキングレポート っていうそれっぽいページがあったと思ったんだ けど、今探すとなくなってるみたいだし・・・。
557 名前:煽りイカ [04/09/15 02:24:11 ID:S7MStXnB] Gtk+はANSI-C言語、QtはC++言語でライブラリが用意されていると言う 解釈でよろしーでしょうか? オブジェクト指向で開発する場合には、後者の方が使い易いんでしょーか? GtkのマニュアルをPC上で読んでいたら目眩がしてきたので、KDEのように 本になって出てないでしょうか?あったら買いたいです。
558 名前:login:Penguin [04/09/15 03:05:40 ID:VtuDal+L] >>556 web.archive.org/web/20040114094302/ghr.shalab.phys.waseda.ac.jp/ghr/gtk_hacking_report.html まぁ自前のWidgetというかオブジェクトを作るとかしない限りこういうことは知らなくても問題ないよ。 >>557 英語でよけりゃ www.nostarch.com/frameset.php?startat=gnome_foundation が網羅的でよさそうな気がする。amazon.co.jp でも買えるよ。洋書版オライリーを扱ってる本屋にも置いてあるかもしれない。 Gtk+の書籍って日本語英語問わずチュートリアル的な本がほとんどなので、リファレンス的 なものとなるとこれ以外の選択肢はない。
559 名前:556 mailto:sage [04/09/15 17:57:59 ID:XXdKtByK] >>558 いいサイトをありがとん。 >まぁ自前のWidgetというかオブジェクトを作るとかし 人のプログラム見てて、まさにこれをしてたので調べてます。 気がつくと gobject のソースの中で遭難中。
560 名前:煽りイカ [04/09/15 22:46:48 ID:S7MStXnB] >558 有り難うございます。
561 名前:login:Penguin [04/09/30 18:40:47 ID:ZNjn4MmY] 質問です。 必ずウィンドウ上の何れかのウィジェットがフォーカスを持っているようにしたいのですが どうすれば良いか分かりません。 例えば、1つのボタンを貼り付けただけのウィンドウを作ったとします。 これを実行してタブを押すと、そのたびにボタンがフォーカスを得たり失ったりします。 ボタンがフォーカスを持っていないときはいったい誰がフォーカスを持っているのでしょうか? あるいは誰も持っていない状態というのがある? どちらにしても、この状態をなくすにはどうすれば良いのですか。 教えてください。
562 名前:login:Penguin mailto:sage [04/09/30 18:48:03 ID:SmK1xNom] >>557 Qtはいいぞぉ。あそこまで洗練されたライブラリは そうそうあるもんじゃない。
563 名前:login:Penguin mailto:sage [04/09/30 20:38:08 ID:e5kfAN1B] >>561 何もしなくてもそんな状態じゃないけど…
564 名前:561 [04/09/30 20:50:54 ID:9AhHdXeZ] >>563 書き忘れていたんですが、1.2の話です。 2系だと平気なんですね、きっと。
565 名前:login:Penguin mailto:sage [04/09/30 22:16:53 ID:e5kfAN1B] >>564 ウィンドウウィジットの GTK_CAN_FOCUS フラグを落す。 バージョンによって違うとは…。
566 名前:561 [04/10/01 10:45:06 ID:TSUAcXDI] >>565 だめですた。 orz でも、ありがとうございました。 もうちと、自分で試してみます。
567 名前:login:Penguin mailto:sage [04/10/01 20:39:26 ID:HB0CGb7q] window = gtk_window_new (GTK_WINDOW_TOPLEVEL); GTK_WIDGET_UNSET_FLAGS(window, GTK_CAN_FOCUS);
568 名前:login:Penguin mailto:sage [04/10/02 19:02:32 ID:vwpDQWM7] 電光掲示板みたいに文字が流れる プログラム作りたいんですが 参考になるソースしりません? バージョンはGtk+2.2 です
569 名前:364 mailto:sage [04/10/02 23:52:42 ID:lvcJFuth] 「電光掲示板みたいに」が、ドットもそれらしく表現ということだと GdkPixbufあたりをつかって自前で画像を描画することになるかと。 いったん文字をDrawableに描画してgdk_pixbuf_get_from_drawableで イメージを取得するとか。
570 名前:login:Penguin mailto:sage [04/10/03 00:02:22 ID:px/BonVe] >>569 ありがとうございます。 さっそく、それらしいソースあさってみますね。 描画ソフト関係をあされば大丈夫かな?
571 名前:login:Penguin [04/10/03 22:52:41 ID:b13aFboP] 質問お願いします。 テキストエントリを使って、文字列を取り込みたくて const char *str = gtk_entry_get_text(entry); wcahr_t wstr[100]; mbstowcs(wstr,str,100); としたのですが、テキストエントリに"aaa"と入力して取り込むと正常に wstrの中身が"aaa"となるのですが、"あああ"と入力して表示させると 文字化けが発生します。 mbstowcsの返り値を調べると-1になっているので正しく変換できてないと 思われるのですが。 もしかしたら、テキストエントリは2バイト文字は扱えないのですか? どなたか教えてもらえないでしょうか。
572 名前:login:Penguin mailto:sage [04/10/03 22:59:18 ID:NMHtHT7k] setlocaleとか実行してるか?
573 名前:571 [04/10/03 23:22:17 ID:b13aFboP] >>572 はい、setlocale(LC_ALL,"ja_JP.eucJP")とやっております。
574 名前:login:Penguin mailto:sage [04/10/03 23:37:40 ID:NMHtHT7k] gtk_entry_get_textの返り値はUTF-8ではないかと。 それをEUCモードのmbstowcsで実行するからエラーになると。 setlocaleでUTF-8を設定するか(これは他の関数で面倒なことになりそう) g_locale_from_utf8でUTF-8からカレントロケールに文字列を変換するか。
575 名前:571 mailto:sage [04/10/04 00:04:10 ID:5lyoB5Xl] >>574 なるほど、そういうことでしたか。 私の作っているプログラムではeuc形式のファイルからの文字列の 読み込みもやらなければならないので、後者の方でやってみます。 アドバイスありがとうございます。
576 名前:login:Penguin [04/10/04 00:14:40 ID:1mgqe0pP] >>571 char *str = gtk_entry_get_text(entry); char *locale_str = g_locale_from_utf8(str); wchar wstr[100]; wprintf("%s", wstr); wbstowcs(wstr, str, 100); strの中身はUTF-8 まんまなので まずiconvなりglibの文字列変換関数(実質iconvのラッパ)で適当に変換する
577 名前:login:Penguin [04/10/10 18:05:08 ID:zn9N0S8U] GTK+ 2.4.11 Released
578 名前:login:Penguin [04/10/13 08:07:25 ID:0RBMkwen] GLib リファレンスマニュアル (2.4.7版) www.gnome.gr.jp/docs/glib-2.4.x-refs/glib/ GObject リファレンスマニュアル (2.4.7版) www.gnome.gr.jp/docs/glib-2.4.x-refs/gobject/
579 名前:login:Penguin mailto:sage [04/10/13 08:50:09 ID:fnawd3gt] gtkはCで書かなきゃいかんのがめんどい
580 名前:login:Penguin mailto:sage [04/10/13 09:10:05 ID:EBUt+ZnU] >>579 pygtkでも使え
581 名前:login:Penguin mailto:sage [04/10/13 10:32:39 ID:fnawd3gt] C++がいい
582 名前:login:Penguin mailto:sage [04/10/13 12:16:04 ID:i0k9Byx8] GTK+ - Language Bindings www.gtk.org/bindings.html
583 名前:login:Penguin mailto:sage [04/10/21 22:11:24 ID:nRPw1OZd] ウィンドウのタイトルを右クリックするとメニューが出てくるように、 ウィンドウマネージャで設定されています。 この時、gtkで一部のウィンドウのメニューを違うメニューにしようと思ったのですが、 _GtkWindowにも_GdkWindowにも操作できるような要素が見当たりませんでした。 どなたかメニューを操作する方法をご存知の方いらっしゃいませんでしょうか・・・
584 名前:login:Penguin mailto:sage [04/10/22 22:33:32 ID:eUY5i1x7] ウィンドウタイトルの所で出るメニューは、作ってるアプリの管轄外だと 思うんだけど。違う?
585 名前:login:Penguin mailto:sage [04/11/07 00:08:40 ID:A8KZGfM+] ウィンドウタイトルないウィンドウマネージャもあるしね。 もし可能だったとしてもアプリケーションが操作すべき場所じゃないと思う。
586 名前:login:Penguin mailto:sage [04/11/09 02:11:59 ID:R4ut9ZNk] Tutorialみてbutton押すとlabelの表示が変わるぐらいは出来るようになったのですが、 gtk_label_set_text(GTK_LABEL(label), "test1"); sleep(1); gtk_label_set_text(GTK_LABEL(label), "test2"); みたいに処理に従ってlabelを書き換えるようなのは、 どうすればいいのでしょうか?上のだと、表示されるのはtest2だけで……。
587 名前:login:Penguin [04/11/09 06:18:13 ID:t6yHsCJv] >>586 #!/usr/bin/env python import pygtk; pygtk.require('2.0') import gtk, gobject count = 0 def greet(widget): print 'Hello!' def deal_timeout(button): global count count += 1 button.set_label(str(count)) print button if count < 10: return True else: return False button = gtk.Button(str(count)) button.connect('clicked', greet) #timer = gtk.timeout_add(1000, deal_timeout, button) timer = gobject.timeout_add(1000, deal_timeout, button) window = gtk.Window() window.connect('destroy', lambda w: gtk.main_quit()) window.set_border_width(10) window.add(button) window.show_all() gtk.main()
588 名前:login:Penguin [04/11/09 07:49:39 ID:t6yHsCJv] >>586 >どうすればいいのでしょうか?上のだと、表示されるのはtest2だけで……。 Windowがマップ(show)されるまで、Labelは表示されないよ。 set_textてコールバックのなかでやってる?
589 名前:login:Penguin [04/11/09 07:50:30 ID:t6yHsCJv] >>586 ごめん、ボタンラベルではなくだだのラベルを書き換えだね。 それから、pygtkで済まん。 #!/usr/bin/env python import pygtk; pygtk.require('2.0') import gtk, gobject count = 0 def deal_timeout(label): global count count += 1 label.set_text(str(count)) if count < 10: return True else: return False label = gtk.Label(str(count)) window = gtk.Window() window.connect('destroy', lambda w: gtk.main_quit()) window.set_border_width(10) window.add(label) window.show_all() #timer = gtk.timeout_add(1000, deal_timeout, label) timer = gobject.timeout_add(1000, deal_timeout, label) gtk.main()
590 名前:login:Penguin mailto:sage [04/11/09 07:53:30 ID:R4ut9ZNk] >>587 うっと、その例だと、 count += 1 button.set_label(str(count)) print button count += 1 button.set_label(str(count)) print button と二度続けてset_labelしたときに順次表示したいという気持ちで。
591 名前:login:Penguin [04/11/09 08:33:34 ID:t6yHsCJv] 質問の意図が分かった。 おそらくmainループに制御が帰らないから中間のset_textは 反映されないのだと思う。 mainスレッドと別スレッドでset_textすればうまくいくのでは。 def callback(label): # bigin mainとは別スレッド global count label.set_text(str(count)) count += 1 time.sleep(1) label.set_text(str(count)) # end mainとは別スレッド
592 名前:login:Penguin mailto:sage [04/11/09 08:41:42 ID:Zkj7YPcz] >>590 何をしたいのかもっと具体的に書いた方がいいのでは?
593 名前:login:Penguin [04/11/10 05:52:19 ID:ppRcKd5W] >>590 これでどう? 別スレッドによる方法は、よした。こちらの方が簡単。 要は、set_textしたあとmain_iterationを必ず呼ぶ。 下のコード参照。
594 名前:login:Penguin [04/11/10 05:52:58 ID:ppRcKd5W] >>590 #!/usr/bin/env python import pygtk; pygtk.require('2.0') import gtk, gobject, time def callback(button, label): button.set_sensitive(False) for i in range(100): time.sleep(i%5+1) label.set_text(str(i)) while gtk.events_pending(): gtk.main_iteration() button.set_sensitive(True) label = gtk.Label('-') button = gtk.Button('Go') vbox = gtk.VBox(spacing = 5) vbox.pack_start(label) vbox.pack_start(button) window = gtk.Window() window.connect('destroy', lambda w: gtk.main_quit()) button.connect('clicked', callback, label) window.set_border_width(10) window.add(vbox) window.show_all() gtk.main()
595 名前:login:Penguin mailto:sage [04/11/17 04:22:22 ID:YsKYfmVj] gtk2-perlいじってみようと思うんですが、 gtk_hoge は Gtk2::hogeと言うので安直に Gtk2::set_locale(); してみたら Usage: Gtk2::set_locale(class) と出る。とりあえず Gtk2::set_locale('euc-jp'); してみると実行出来るが文字化けなおりまへん。 すみまへんが、どなたかぷりーず救いの手。
596 名前:login:Penguin mailto:sage [04/11/17 07:45:19 ID:iY7axWLS] >>595 www.gnome.gr.jp/docs/porting-apps-GNOME-2.0/ar01s10.html
597 名前:login:Penguin mailto:sage [04/11/17 09:53:38 ID:YsKYfmVj] >>596 ありがとん。 use utf8; 足してutf-8で書くだけでしたか。 けどこりゃ面倒だな。。。
598 名前:login:Penguin [04/12/03 19:00:50 ID:GiyN6pXi] GTK+ 2.4.14 Released
599 名前:login:Penguin [04/12/04 18:37:51 ID:6LgKh+yC] 厨房な質問ですが教えてください。 テキストボックスに日本語入力できません。 日本語の文字列をコピペしても文字化けします。 gtk_set_locale(); の他に setlocale(LC_ALL,"ja_JP.eucJP"); なども試してみましたが効果ありませんでした。 gtk+ 1.2 なら問題なく日本語が通るのですが、gtk+ 2.4では何か特別なことをする必要があるのでしょうか。 テキストエントリーなら普通に日本語入力できます。 GtkWidget *text; //文字化けする text = gtk_text_new(NULL, NULL); gtk_text_set_editable(text, TRUE); GtkWidget *entry; //文字化けしない entry = gtk_entry_new(); gtk_editable_set_editable(entry, TRUE); FAQに違いないと思うのですが、どう調べても解決できません。 #メモ帳程度ならすぐできると思ったのですが、そんな甘いものではないのですね。
600 名前:login:Penguin mailto:sage [04/12/04 18:59:58 ID:VErRj59z] >>599 www.gnome.gr.jp/docs/porting-apps-GNOME-2.0/ar01s10.html
601 名前:599 mailto:sage [04/12/04 21:48:41 ID:6LgKh+yC] text = gtk_text_new(NULL, NULL); ではなく、 text = gtk_text_view_new(); でやってみたら、日本語が使用できました。 gtk_text_new はもしかしてobsolete ? >>600 参考になりました。(難解すぎてあまり理解できませんでしたが)
602 名前:login:Penguin mailto:sage [04/12/04 22:01:56 ID:9FhprA6L] マニュアル読みながらやってないのか? 1.2 から 2.0 になる時にけっこう 変わってるよ。 Warning GtkText is deprecated and unsupported. It is known to be buggy. To use it, you must define the symbol GTK_ENABLE_BROKEN prior to including the GTK+ header files. Use GtkTextView instead.
603 名前:login:Penguin [04/12/08 13:42:17 ID:s2a0TgVZ] 質問です。 画像ファイルを表示させたいのですが、pgm形式の出力の方法がわかりません。 xpmしか出力できないのでしょうか?
604 名前:login:Penguin mailto:sage [04/12/08 17:44:12 ID:RUzeNZBB] >>603 >xpmしか出力できないのでしょうか? gdkpixbuf でたくさんのフォーマットに対応してるが、 pgm が対応してるか どうかはしらん。
605 名前:login:Penguin mailto:sage [04/12/09 01:42:01 ID:8bxaruuu] GTKを使ったアプリケーションを作ってみたいと思っているんですが、 おすすめの入門書などはありますか? 当方、VisualStudio+C言語+Win32APIならたいていの物は作れる程度の知識ですが、 Linuxは初心者です(´・ω・`)ショボーン >「GTK+・GDKによるLinuxアプリケーション開発」 近所にこんな本があるんですが、どんなもんでしょうか。
606 名前:login:Penguin mailto:sage [04/12/09 02:28:34 ID:9Rw7z+2N] 最新のGTK+に対応してる本がよさげ。
607 名前:login:Penguin mailto:sage [04/12/09 04:27:08 ID:R51KLcmk] >>606 Gtk2に対応してる日本語本ってあるの? あるなら折れも欲しい。 >>605 CとWin32APIを好き勝手できるのなら www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html ここを一通り見てみるのもそう苦じゃないと思う。 GTK+以外のところ、つくりたいものの根っこの処理なんかは システムコールとか解説してる本を一読しておく必要があると思うが、 そういう本はわりと見掛ける。 ガンガレ!
608 名前:603 mailto:sage [04/12/09 12:34:15 ID:wvxh3lvA] >>604 ありがとうございました。おかげで解決できました。
609 名前:login:Penguin mailto:sage [04/12/09 23:37:09 ID:8bxaruuu] >>606 >>607 ありがとうございます。参考にします(´・∀・`)
610 名前:login:Penguin [04/12/17 15:43:49 ID:+/93qx7Y] gtk+ 2.6.0
611 名前:login:Penguin mailto:age [05/01/10 02:06:52 ID:W1Pzi+ZV] ショートカットとして "Shift+Ctrl+a" というキーを割り当てるには どうすればよいでしょうか? gtk_widget_add_accelerator の第5引数に GDK_SHIFT_MASK|GDK_CONTROL_MASK というように指定しても、コンパイルで invalid conversion from `int' to `GdkModifierType' と怒られてしまいます。
612 名前:login:Penguin [05/01/10 03:15:43 ID:lP2Bwze9] equis.ya.com/coletassoft/non_pb/linux_pie/imagepages/image8.html
613 名前:login:Penguin mailto:sage [05/01/28 21:39:23 ID:fhQu+EL0] Linux上でGtk+2アプリケーションのWindows実行形式(*.exe)を構築する方法を まとめてみますた。 win2linux.sourceforge.jp/pukiwiki/index?%5B%5BInfo%2F%A5%AF%A5%ED%A5%B9%A5%D3%A5%EB%A5%C9%B4%C4%B6%AD%A4%CE%B9%BD%C3%DB%5D%5D
614 名前:login:Penguin mailto:sage [05/01/31 14:32:47 ID:nk2PSUal] >>613 おおっ! build-cross.shを試してみようと思うのですがこれってPREFIX変えれば rootにならなくても動きます?
615 名前:614 mailto:sage [05/01/31 16:16:04 ID:nk2PSUal] >>614 >build-cross.shを試してみようと思うのですがこれってPREFIX変えればrootにならなくても動きます? 自己レス.できました. >>613 いいっすね.スクリプトもページも勉強になりました. 感謝!
616 名前:login:Penguin mailto:sage [05/01/31 21:21:11 ID:rpwtgdcM] 613ですが、libxml2とlibxsltについては、もう少し、入れ方に工夫が必要そうです。自分で *.pcをでっちあげるというのも手かもしれませんが。ということで要研究です。
617 名前:login:Penguin mailto:sage [05/02/24 14:05:33 ID:opcJ4VYg] >>11 > こんくらいの英語がわからんよーじゃLinuxは使えんよ。 Linuxのドキュメントは英文のなかでも難解な部類に属すると思われ
618 名前:login:Penguin [05/02/26 01:35:42 ID:ioiQR6vn] 日付の書式設定をgettextizeしようと思って、 日付の書式をstrftimeに渡す前に g_locale_from_utf8 で utf8な文字列に変換してから渡してるんだけど、 何故か g_locale_from_utf8 が0x0な値しか返してくれません。 こんな感じの処理がしたいんだけど、 1.const で _("%B %Y") と書式を指定 2.po には "%B %Y年" と記述 3.g_locale_from_utf8 で文字コードを変換 4.strftime の format に上記を指定して日付をゲト もしかし po で変換されて帰ってくる文字コードってutf8固定じゃないのかな??
619 名前:login:Penguin mailto:sage [05/02/26 13:17:05 ID:Rle58e5G] panedの素婦りったのサイズの取得方法をご存じの方、ご教示ください。
620 名前:login:Penguin mailto:sage [05/02/28 19:03:23 ID:QS7g1csz] >>618 bind_textdomain_codeset() で UTF-8 を指定していますか? デフォルトでは locale encoding で返ってきます。
621 名前:618 [05/02/28 22:17:53 ID:IaK5xt0q] >>620 ソースを見たら、bind_textdomain_codeset(EPN, "UTF-8"); となっていました。 色々試してみた結果、一旦「poに日本語訳の無い書式」を選んでおいて、 その後に「日本語訳の有る書式」に切替えると、一旦は正常に反映されるんだけど、 アプリを終了して再起動しようとすると SEGV を起こしてしまいます。 一旦は正常に動作することから、const で記述した文字列を gettextize している部分で、 メモリの確保が上手くいってないような気がしてきました。 どうやって確認したら良いんだろう…。
622 名前:login:Penguin mailto:sage [05/03/01 03:22:58 ID:4G9qSY/D] >g_locale_from_utf8 で >utf8な文字列に変換してから渡してるんだけど、 g_locale*_to*_utf8じゃないと「utf8な文字列に変換」はできねえんでねえかい
623 名前:618 [05/03/01 19:23:49 ID:4zQ3kAWS] >>622 ごめん。書き間違った。 (誤)g_locale_from_utf8 で (正)g_locale_to_utf8 で ちゃんと書くと、最初に g_locale_from_utf8 でカレントロケールに変換してから、 strftime に渡してやって、結果を g_locale_to_utf8 で再度変換してから label を作ってます。
624 名前:login:Penguin mailto:sage [05/03/03 02:17:43 ID:g8vCaa7b] gtk でウインドウの x ボタンを押しても閉じないようなウインドウを 作るにはどうしたらいいですか?
625 名前:login:Penguin mailto:sage [05/03/03 18:04:13 ID:Gfb84io7] >>624 "delete_event" の callback 関数で TRUE を返すようにする。
626 名前:login:Penguin mailto:sage [05/03/03 20:39:00 ID:g8vCaa7b] >>625 サンクス!
627 名前:618 [05/03/03 21:48:02 ID:Fxm/rLTz] >>623 自己レスです。 MLで聞いたら、_()マクロの代わりにN_()マクロを使えと教わりました。 結局、const 中の メッセージを const char *msg = { N_("hoege")}; に変更しておいて、 あと sprintf(str,"I am %s",msg); を sprintf(str,"I am "); strcat(str,_(msg)); とすればOKだった。 全然GTKに関係無かっただよ。スマソ。
628 名前:login:Penguin [05/03/14 14:58:26 ID:YLJBAcu4] すいません。 Gdkのgdk_draw_polygonとかの関数で描画する図形の色を 半透明にして表示する事ってできますか? 当方FedoraCore3のGtk2.0で作成中なのですが やり方がわからずはまっているところです。 アルファ値の設定ってどっかでできますかね??? 宜しくお願いします。
629 名前:login:Penguin [05/03/14 15:32:30 ID:bODZhmWq] gtk2 でプログラミングしてます。 ボタンやラベルの色を個別二変更できなくて困ってます。 方法をおしえてーーーー! それとフォントの変更も個別にできないんです。
630 名前:login:Penguin mailto:sage [05/03/14 23:49:50 ID:9KHOi9Md] >>628 libgnomecanvas使ったほうがいいかもしれない
631 名前:login:Penguin mailto:sage [2005/03/21(月) 12:28:53 ID:HsH5YBrh]
632 名前:login:Penguin mailto:sage [2005/03/21(月) 12:30:23 ID:uGHm3JkC]
633 名前:再描画 mailto:sage [2005/03/24(木) 21:33:44 ID:K5TJHYPW] こんばんは、質問いいですか。 gtkとpthreadを使ってプログラムを作ってます。 メインスレッドはgtk_main()に行ってて、 作成されたスレッドの方でWidgetに変更を加えます。 (GTK_LABELの文字を変えたりとか) ところが、変更した時には直ぐに結果が表れません。 マウスポインタがボタンの上に行ったり、他のソフトを起動したりすると 変更されるのですが、放置しておくとそのままーでいてます。 強制的に再描画してみようと思ってWidgetいじった後に system("xrefresh"); してみたら思った通りに動いてくれました。 でも普通は何か別のそれ用の関数を使うんですよね。 何を使えばいいんでしょうか。
634 名前:login:Penguin mailto:sage [2005/03/24(木) 21:55:49 ID:w4FsQjjW] gdk_flush() してみるとか
635 名前:login:Penguin mailto:sage [2005/03/24(木) 21:58:19 ID:/mf/WXIK] >>633 それはスレッドにする必要があるからそうしてるのか? gtk_main()に突入したら戻ってこないという理由だけで スレッド化しているなら、スレッド化せずに gtk_add_timeout使ってコールバックルーチンのほうで描画するとか。
636 名前:再描画 mailto:sage [2005/03/24(木) 22:05:36 ID:K5TJHYPW] >>634 例のxrefreshしている行を gdk_flush(); で置き換えてみました。 んー、うまくいきません。ごめん。 今、xrefreshのソースを見てみようとxfree86のソースを落としてます。 ナローバンドなので作業は明日になりそう(T-T)
637 名前:再描画 mailto:sage [2005/03/24(木) 22:10:39 ID:K5TJHYPW] >>635 ちょっとtimeout使ってみて何か上手く行かなかったから thread使ってみたんですが、 考えてみればスレッドにする程のもんでもないかも。 もう少しtimeoutで粘ってみる。 繰り返す必要が無いならidle_addの方でもいいのかな。
638 名前:login:Penguin mailto:sage [2005/03/24(木) 22:32:33 ID:ir5d0pxX] >>633 developer.gnome.org/doc/API/2.0/gdk/gdk-Threads.html これじゃダメ? gtk-thread.cを試したらラベルの書き換えできてるようだけど。
639 名前:再描画 mailto:sage [2005/03/25(金) 00:26:27 ID:i+2vihm2] timeoutで書き直した。成功!! と思ったら、ボタン(処理を中止するボタンつけてるの)が押せなくなってるっ! ボタン押しを処理するべきものがお忙し中になっちゃうのかな。 折角情報いただいたのでthreadの方ももう少し粘ってみる。 なんかスレッドっていろいろあるのね。 gdk_flushを手がかりにあちこち読んでみた。 g_thread_init(NULL); を入れたら上手く行った。あれ? flushなくても大丈夫だ。 ・・・なんか私、凄く馬鹿だったかも。 >>638 読んでみます。ありがとう。
640 名前:再描画 mailto:sage [2005/03/25(金) 00:56:18 ID:i+2vihm2] 少し訂正。 [誤] g_thread_init(NULL); を入れたら上手く行った。 [正] g_thread_init(NULL); をgtk_main(); の前に入れたら上手く行った。
641 名前:再描画 mailto:sage [2005/03/27(日) 20:09:54 ID:+oexgFcZ] >>638 のページ、参考になりました。 GUIと関係ない部分での同期処理と複数のスレッドから再描画する時の 同期処理(Widgetをとりあわない様にする事)は別だったんだなぁ。 とりあえず完成しました。ありがとう!!
642 名前:再描画 [2005/05/01(日) 10:24:56 ID:RRZjWKpR] Linuxでのプログラミング学習です。 こんな問題をいきなり授業で出題されました。 まだほとんど何もやってないので、さっぱり 意味が分かりません。分かる方がいらっしゃるなら、 回答の方教えてはいただけませんか? f(x)=xの2乗-xy-yの2乗 について x=-0.423 y=1 の時の値を(小数点第4位までの表示) で求めなさい。ただし、変数x,yの値はscanf文で 入力させてください。
643 名前:login:Penguin mailto:sage [2005/05/01(日) 10:31:25 ID:ua7T6e16] >>642 板違い
644 名前:再描画 [2005/05/01(日) 10:34:34 ID:RRZjWKpR] どこに行けばいいですか? 先ほども別の板で言われてしまいました。
645 名前:login:Penguin mailto:sage [2005/05/01(日) 10:54:47 ID:fDqSGSeJ] 本屋さん
646 名前:login:Penguin mailto:sage [2005/05/01(日) 11:25:35 ID:ZutXiTEl] >>642 scanfてーからにはC言語だと思うが、プログラミングを習得する気も学習能力もないみたいなので プログラム板の宿題丸投げスレをお薦めする。 ttp://pc8.2ch.net/test/read.cgi/tech/1113811213/
647 名前:再描画 [2005/05/01(日) 11:57:32 ID:RRZjWKpR] ありがとうございます
648 名前:glade勉強中 [2005/05/02(月) 06:24:53 ID:3JWzQ4cI] gladeを使用時して、コールバック関数にユーザデータとして widgetを渡す方法を教えてください。よろしくお願いします。 現状生成されるコード: interface.c g_signal_connect ((gpointer) button1, "clicked", G_CALLBACK (on_button1_clicked), NULL); 生成したいコード: interface.c g_signal_connect ((gpointer) button1, "clicked", G_CALLBACK (on_button1_clicked), GTK_OBJECT (entry1)); やりたいことは、ボタンが押されたときにentry1の内容を操作することです。 mainから操作するという方法もあるのですが・・・
649 名前:login:Penguin mailto:sage [2005/05/02(月) 18:23:05 ID:PZ6xqLwA] button1 のプロパティウィンドウ出して、シグナルのところに書くだけでは? glade はウィジットの表示見本程度にしか使ってないから、違うかも…
650 名前:login:Penguin mailto:sage [2005/05/04(水) 22:53:32 ID:6VJhx7bu] 同じく勉強中ですが、 ソースのg_signal_connect()の最後のNULLを手動で書き換えるしかなさそうです。 プロパティ窓の"シグナル"の中には、g_signal_connect()のdata引数に当たる部分を 指定する欄は(バージョン2.10.0の時点で)ありませんし、 entry1を"オブジェクト"のところに書くと g_signal_connect_swapped ((gpointer) button1, "clicked", G_CALLBACK (on_button1_clicked), GTK_OBJECT (entry1)); が生成されてしまいます。
651 名前:再描画 mailto:sage [2005/05/07(土) 00:09:31 ID:fZ/PdFpz] >>642 何でその名で書き込みますか。 何の罠ですか。 私は>>633 の「再描画」です。 同一人物に思われるじゃなかですか。勘弁してくださいよ、もう。
652 名前:login:Penguin mailto:sage [2005/05/07(土) 09:25:01 ID:wZZgaFg6] カブるのいやならトリップつけとけ。
653 名前:login:Penguin mailto:sage [2005/05/07(土) 12:29:43 ID:FaaicVGA] コテハンでもないのに、いちいちトリップ付けられるのうざい。
654 名前:login:Penguin mailto:sage [2005/05/07(土) 23:39:55 ID:lWepT/vx] えー、gladeの話に戻すとするか。 私も g_signal_connect()の最後は手動で書き換え。 >>648 の例だと NULLを単純に entry1にするかな。 interface.cは最初にgladeが生成したのから随分変更するので ある程度コード書きが進行してからまたgladeに頼りたい時は、 別の所にコードを出力しておいて両interface.cをdiffして ちまちま書き換えてる。
655 名前:login:Penguin mailto:sage [2005/05/08(日) 00:01:51 ID:cuTcQAVH] とりあえずのものであれば、 シグナルハンドラ(on_button1_clicked())内で lookup_widget()を使ってentry1を取得するのもありかと。
656 名前:login:Penguin mailto:sage [2005/05/08(日) 11:08:08 ID:yrqPYh5d] もしlibgladeを使うのなら、gladeが生成するXMLファイルから glade_xml_get_widget()でentry1を取得すればOK。 (もしくは一度glade_xml_get_widget()で取得したentry1を glade_xml_signal_connect_data()のuser_dataとして渡す) gladeファイルを何度も変更すると、Cソースをその都度出力してdiffを・・・と 手間がかかってしまうので、楽ができます。
657 名前:glade勉強中 [2005/05/08(日) 23:25:53 ID:YB00BN6K] 648のwidgetを渡す件ですが、 gladeが、生成する support.h 内の関数 lookup_widgetを用いて、 コールバック関数を内でwidgetを検索して取得することができました。 GtkWidget *entry = lookup_widget(GTK_WIDGET(button), "entry1"); gtk_entry_set_text (GTK_ENTRY(entry), dirname);
658 名前:login:Penguin mailto:sage [2005/05/28(土) 11:21:51 ID:o6s+/jnw] GTKについて勉強中なのですが、 HTMLのTABLEタグのような表を作成するにはどうするのが一番いいのですか。 GtkTableのうえに複数のGtkEntryを配置するのが普通?
659 名前:login:Penguin mailto:sage [2005/05/28(土) 19:05:54 ID:ALWgONN6] 表示するだけ…じゃないよな スプレッドシートっぽいのがやりたいときは専用のウィジェットがあったはず ttp://gtkextra.sourceforge.net/
660 名前:GTK初心者 [2005/05/29(日) 16:11:34 ID:8OqUCAcQ] gint mainと int mainの 違いを教えて下さい。
661 名前:login:Penguin mailto:sage [2005/05/29(日) 16:32:38 ID:BEeLFlJy] sizeof(int)はマシンによって違うけどsizeof(gint)はどのマシンでも同じになる が、mainをgintにすべきかと聞かれると…微妙
662 名前:login:Penguin [2005/05/29(日) 18:20:24 ID:8OqUCAcQ] ボタンをクリックして そのボタンを押した数をウィンドウ上に表示させる プログラムを教えて下さい。
663 名前:login:Penguin mailto:sage [2005/05/29(日) 18:52:06 ID:sBgcA4li] >>661 gint main()にしたらダメでしょ。 gintがint以外に置き換えられる場合はwarningになるんだから。
664 名前:login:Penguin mailto:sage [2005/05/29(日) 20:08:11 ID:y1WOFjTT] >>662 どこまでできていて、どこで詰まってるのか?
665 名前:662 [2005/05/29(日) 20:33:21 ID:8OqUCAcQ] >>664 callback関数の gpointer data をどうしたらよいかわかりません。
666 名前:login:Penguin mailto:sage [2005/05/29(日) 22:41:47 ID:y1WOFjTT] >>665 ラベルに表示するならボタンのコールバックを g_signal_connect(button, "clicked", G_CALLBACK(clicked_cb), label) とかしといて コールバック側で label = GTK_LABEL(user_data) とか受けとけばどう?
667 名前:662 [2005/05/29(日) 23:13:36 ID:8OqUCAcQ] >>666 m(__)m ありがとうございます。 やってみます。
668 名前:login:Penguin mailto:sage [2005/05/30(月) 20:14:27 ID:EDgWxmRU] >>659 まさに、こんなのを探していました。 ありがとう。 ダウンロードして試してみます。
669 名前:login:Penguin [2005/06/22(水) 21:07:00 ID:xe7y7k0v] 昨日からgtk勉強してるのですがわからないことがあるので教えてください 1つのグループのラジオボタンを3つ作って、それをA,B,Cとします。 次に一つ普通のボタンを作って、 Aを選択中にこのボタンを押したらA関数が、B選択中はB関数が実行される・・ というプログラムを作りたいのですが、どのように考えればよいのでしょうか??
670 名前:login:Penguin mailto:sage [2005/06/22(水) 21:16:32 ID:qMKsIvq9] >>669 普通のボタンが押された時に呼ばれるコールバック中で、どのラジオボタンが 選択されてるか判定して・・・・、gtk の話でない気がするがどの辺がわからんのよ?
671 名前:login:Penguin [2005/06/22(水) 21:34:03 ID:xe7y7k0v] >>670 コールバック中に判定する方法がわかりません 自分でいうのもなんですが、基本がわかってないと思います。
672 名前:login:Penguin mailto:sage [2005/06/22(水) 21:54:13 ID:qMKsIvq9] user_data でもグローバル変数でも好きなので、 状態をいれた変数かボタンを渡す。
673 名前:669 mailto:sage [2005/06/22(水) 22:04:18 ID:xe7y7k0v] もう少し考えてがんばってみます 参考書なしで、ネットで調べてやってるんですが やはり参考書は買ったほうがいいですかね?
674 名前:login:Penguin mailto:sage [2005/06/22(水) 22:10:13 ID:qMKsIvq9] いい本ないから・・ ネットで gtk2 のチュートリアル見るのがいいと思う。
675 名前:669 mailto:sage [2005/06/22(水) 22:19:39 ID:xe7y7k0v] >>674 そうですか・・・ さっきの問題は解決しました Aを押したらint NUM=1、BならばNUM=2として 普通のボタンを押した関数のなかでNUMが1ならばA関数・・・ というようなのでいちおうできました もっと高度なテクとかあるのかもしれませんが。。。 ありがとうございました
676 名前:login:Penguin [2005/06/23(木) 01:50:52 ID:jw4l769e] GTK+をいじり始めて間もない初心者なんですが少しお聞きしたいことがあります。 ビデオキャプチャプログラムのようなものを作っていて、キャプチャした画像を pixbufに突っ込んでリモートのXクライアントで表示する場合、リアルタイム(30fps)での 表示がキツイです。画像データを圧縮して転送するオプションみたいなものはありませんでしたでしょうか?
677 名前:login:Penguin [2005/06/23(木) 02:58:12 ID:jw4l769e] 説明が足りてない気がするので補足。 GTKはver1.2です。リモートではない場合、描画は2ms程度で終りますが、 リモート(LAN内)では30ms前後かかり、他の処理を含めるとリアルタイム表示(33ms)は 微妙に無理といった感じです。 画像は320x240、24bitRGB、毎秒30枚と考えると、無圧縮では最低でも7MB/sもの 帯域が必要な計算になります。圧縮できるようなことをどこかで見た気がするのですが 気のせいでしょうか??改めて探してみたのですが見つかりません。
678 名前:login:Penguin mailto:sage [2005/06/23(木) 20:12:38 ID:MHRUW0Sb] gtk 関係ないんじゃないの? 7MB/s ってことは RGB 生データ?それならなおさら gtk 関係ない気がするが。
679 名前:676,677 [2005/06/25(土) 21:14:27 ID:O58VWF1R] >>678 7MB/sは生データですよ。30msってのはキャプチャにかかる時間を除いた、 表示(ネットワーク転送含む)するのにかかる時間ですので少なくとも X関連であることは間違いないです。 自マシンで表示する場合はわずか2ms程度で表示できることからも明らかです。
680 名前:login:Penguin [2005/06/26(日) 00:23:14 ID:bkhj+VqI] textviewで選択範囲の指定はどうすればよいのでしょうか? 選択範囲の取得の方は gtk_text_buffer_get_selection_bounds (textbuffer, &start, &end); で、出来るようですが。ちなみにやりたい事はある地点1から地点2までの範囲の文字列をクリップボードに記憶する事です。
681 名前:login:Penguin mailto:sage [2005/07/05(火) 04:57:38 ID:0YaxXABQ] gtk2.0 C言語にてプログラムを作っているのですが行き詰まってしまいました。 メニュー専用の関数を作り、トップレベルウィンドウのウィジットを渡してメニューを生成しているのですが、 その関数の中でメニューのあるアイテムが押されたときのコールバックとして、リストのアイテムやラベルの文字列等を 変更したいと思っています。 ラベルやリストなどのウィジットの取得方法がわからないのですがいい関数ありませんでしょうか? ご教授よろしくお願いします。
682 名前:login:Penguin mailto:sage [2005/07/05(火) 05:09:08 ID:0YaxXABQ] 訂正です トップレベルウィンドウのウィジットを渡して ↓ メインで宣言したメニューバーウィジットのポインタを渡して ウィンドウのウィジットはlookup_widgetやget_widget関数が使えないか 試したときの名残でした。
683 名前:login:Penguin [2005/07/15(金) 04:16:09 ID:pWVHLMqz]
684 名前:login:Penguin mailto:sage [2005/07/19(火) 23:31:34 ID:Kq6OqZbu] 2.6からGtkMessageDialogは2行で書くことを強要するようになったのか・・・orz
685 名前:login:Penguin [2005/08/14(日) 11:45:43 ID:hCW5GrPA] GTK+-2.8.0 release age
686 名前:login:Penguin mailto:sage [2005/08/14(日) 22:13:25 ID:k5rVKxDc] >>685 描画にcairoを使ったやつだな。安定してるのかな?
687 名前:login:Penguin [2005/08/14(日) 22:23:45 ID:i3voTSGN] >>686 さあ。CairoもGLIBもPangoもうまくいったんだけど、 GTKのmakeが途中で失敗して試せず…
688 名前:687 mailto:sage [2005/08/15(月) 15:49:57 ID:w6RYEsxj] できた。 >>686 安定してるとはおもうよ。今のところ怪しい挙動はしてないし。 あと、ColorChooserがきれい(;´Д`)。
689 名前:login:Penguin [2005/08/21(日) 12:44:35 ID:K7D1YFrD] 現在、Redhat9.0でX-Windowのプログラミングを 行っています。 質問内容 マインスレッドから子スレッドを生成しました。 子スレッドの中のfor()文でミリ秒単位(もしくは、それ以下) のデュレイ(sleep()の処理)を入れたいのですが、 実現方法がわからない状況です。 C言語の関数かX-Windowの関数で実現 方法をご存知の方がいましたら、アドバイス お願いします。
690 名前:login:Penguin mailto:sage [2005/08/21(日) 13:38:31 ID:HFufZyw/] usleep()
691 名前:login:Penguin mailto:sage [2005/08/21(日) 13:48:07 ID:K7D1YFrD] >>690 有難う御座います。 usleep()確認致しました! 昨日から悩んでましたが、これで解決しました。 感謝感謝 <(_ _)>(本当に有難う御座います。)
692 名前:login:Penguin mailto:sage [2005/08/24(水) 15:36:40 ID:ONHXEom6] Gtk 1.2で質問です。 CListのある行が表示領域の中か外かはわかるんですが、 その行が表示領域より上なのか下なのかを判別する方法はありますか?
693 名前:login:Penguin mailto:sage [2005/08/24(水) 15:45:04 ID:UhWJrWdj] >>692 もう1.2は捨てろや。
694 名前:login:Penguin mailto:sage [2005/08/24(水) 16:27:17 ID:ONHXEom6] 1.2で不可能なら乗り換えますので…
695 名前:login:Penguin mailto:sage [2005/08/24(水) 18:34:08 ID:I9lXJq9H] >>692 先頭からなめていけばできるんじゃないか? と CList を全然使ったことないオレが言ってみる。
696 名前:login:Penguin mailto:sage [2005/08/25(木) 00:07:52 ID:hGqCOotH] みんなエディタどうしてる? Emacs? KDevelopとかEclipseとか統合環境ってやっぱ便利かな?
697 名前:login:Penguin mailto:sage [2005/08/25(木) 01:16:12 ID:fP3EQi3h] >>694 CListは2.x以降では使うべきでないウィジェットなので、調べるだけ無駄。
698 名前:login:Penguin mailto:sage [2005/09/01(木) 19:10:40 ID:q3rS4hWe] GTK2.0のプログラミングを始めるにあたって、 「ここ見て勉強しる!」っていうWebはありますか?
699 名前:login:Penguin mailto:sage [2005/09/01(木) 21:26:59 ID:rC80u0pE] 本家のチュートリアルを流し読んだら、 ・チュートリアル ・API リファレンス(gtk,glib) ・ソース ・ソースに付いてるサンプルコード(gtk-demo が特にいい) の4つを何時でも読めるようにローカルのハードディスクに入れて、後は実戦。
700 名前:login:Penguin mailto:sage [2005/09/01(木) 21:37:27 ID:l0ibWz2e] >>699 本家のチュートリアルが、既に腐ってるという問題がw
701 名前:login:Penguin mailto:sage [2005/09/06(火) 18:45:02 ID:dEt8CCEg] ソースを読めば理解しあえる それが本物のプログラマーだ
702 名前:login:Penguin mailto:sage [2005/09/06(火) 23:46:36 ID:P14C2zmG] >>701 幻想だ。ほかのやつが書いたソース読んでもむかつくだけ。
703 名前:login:Penguin mailto:sage [2005/09/07(水) 00:48:45 ID:Ow0LlqqK] 半年前に自分が書いたコードが全然理解できません。
704 名前:login:Penguin mailto:sage [2005/09/20(火) 00:43:03 ID:W0eobZlU] >>703 ちゃんとコメント書いとけ
705 名前:login:Penguin mailto:sage [2005/09/20(火) 00:55:32 ID:txdQkjKa] そこで文芸的プログラミングですよ
706 名前:login:Penguin [2005/09/20(火) 18:01:07 ID:Vs5i3O4n] gtk+-1.2.10 って最近の gtk+-2.x より重くて不安定なの?
707 名前:login:Penguin mailto:sage [2005/09/21(水) 15:17:22 ID:rr1Fmfwx] 1.2.10のほうが軽いけど、機能的にかなり劣るしクラッシュを起こすような 大きな不具合もいろいろ存在する。
708 名前:login:Penguin [2005/09/26(月) 18:08:58 ID:DNEXEhTN] ★〜彼方の願い星〜★ このレスを見た人は、超ラッキーな人♪ でも、このレスを見ただけじゃ何も起らないよ。 効果を実感したいなら、このレスを5回違うスレにレスしてね♪ だぁい好きなあの人に告られたり、 成績がどんどん良くなって、先生に褒められちゃったり...。 次々とHAPPYな事が訪れます♪ 此の頃変なのがいっぱい回ってますが、これは本当です!! これが本物の、初代HAPPYメールです♪
709 名前:login:Penguin [2005/10/03(月) 03:44:59 ID:CJIUV5JW] 質問です。 GtkComboBox (=ドロップダウンリスト)の gchar* gtk_combo_box_get_active_text (GtkComboBox *combo_box); が返す文字列って、GtkComboBox が内部で持っている文字列のポインタそのものなんでしょうか。 だとしたら、文字列の中身をいじっちゃいけないですよね。 もし、新たに別なコピーを作って渡してくれているとしたら、使い終わったときに g_free() してあげるべきだと思うんですけど、どっちなんでしょう。 環境:FreeBSD5.4 gtk+2.6.10
710 名前:login:Penguin mailto:sage [2005/10/03(月) 04:06:14 ID:ddKsBqfZ] >>709 Returns : a newly allocated string containing the currently active text. だから、コピーが返ってくる。 GTK+ではコピーでない文字列が返ってくる関数は返り値の型として G_CONST_RETURN gchar *を使っていると思ってよい。
711 名前:login:Penguin mailto:sage [2005/10/20(木) 00:48:02 ID:gcr1pUQn] 現在、SUSELINUX10.0を使っています。これからGTK+でプログラミングを始めようと 考えているのですが、初心者レベルの参考書かWEBページを教えていただけませんか?。 C言語は理解できるのですが、GTKのコンパイルの仕方とか全くわからない者です。 やりたいことは、ベクトルデータを読み込んで、ウィンドウ上に線や円を描きたいのです。 宜しくお願いします。
712 名前:login:Penguin mailto:sage [2005/10/20(木) 01:56:33 ID:uIaqifFq] >>711 www.google.co.jp/search?hl=ja&q=gtk+%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
713 名前:login:Penguin mailto:sage [2005/10/20(木) 02:28:11 ID:gcr1pUQn] >>712 昔、アテナウィジェットでプログラムを組んだことがあるので、理解ははやいです。 ありがとうございました。
714 名前:login:Penguin mailto:sage [2005/10/25(火) 10:18:40 ID:5uMbs+gQ] GtkButtonを使ったボタンを通常より立体的にしたいのですが、 リソースを設定するだけで可能なのでしょうか。
715 名前:login:Penguin mailto:sage [2005/10/25(火) 13:25:22 ID:IfftLXnr] GTKはリソース使いません。
716 名前:login:Penguin mailto:sage [2005/10/25(火) 13:45:08 ID:6LKQFPf8] >>715 .gtkrcはリソースファイルって言わないの?
717 名前:login:Penguin mailto:sage [2005/10/25(火) 14:02:11 ID:5uMbs+gQ] >>715 Reference Manual に Resource File の章があるんですけど。
718 名前:login:Penguin [2005/10/25(火) 17:22:31 ID:m1tx75Sl] gtk+-2.0をインストールしたいのですがうまくいきません。 pkageconfig,glib,atkをmakeしたあと pangoをコンパイルしたのですが fontconfigがないとのエラーが出ました。 fontconfigをダウンロードしたのですが、以下のようなエラーが出て コンパイル出来ません。 どうすればいいのか、アドバイスをお願いします。 ../fontconfig/fcfreetype.h:27 から include されたファイル中, ../src/fcint.h:39 から, fc-lang.c:25 から: /usr/local/include/freetype2/freetype/freetype.h:20:2: #error "`ft2build.h' hasn't been included yet!" /usr/local/include/freetype2/freetype/freetype.h:21:2: #error "Please always use macros to include FreeType header files." /usr/local/include/freetype2/freetype/freetype.h:22:2: #error "Example:" /usr/local/include/freetype2/freetype/freetype.h:23:2: #error " #include <ft2build.h>" /usr/local/include/freetype2/freetype/freetype.h:24:2: #error " #include FT_FREETYPE_H" make[2]: *** [fc-lang.o] エラー 1 make[2]: Leaving directory `/usr/local/src/fontconfig-2.2.0/fc-lang' make[1]: *** [all-recursive] エラー 1 make[1]: Leaving directory `/usr/local/src/fontconfig-2.2.0' make: *** [all-recursive-am] エラー 2
719 名前:login:Penguin mailto:sage [2005/10/25(火) 18:47:16 ID:cgJQeaf4] freetype2インストールしてある?
720 名前:login:Penguin mailto:sage [2005/10/25(火) 22:24:06 ID:j8mKOjPp] コンパイルエラーの意味がわからないなら、 rpmとかdebとかのをインスコしろよ
721 名前:login:Penguin mailto:sage [2005/10/26(水) 00:25:02 ID:0UU6o7oS] Geany is a text editor using the GTK2 toolkit with basic features of an IDE. geany.uvena.de/
722 名前:login:Penguin mailto:sage [2005/10/26(水) 01:50:52 ID:fACOIYn1] java-gnomeとかgnoclとかいじってる奴っておらん? もうちょっと盛り上がれこのスレ。
723 名前:login:Penguin mailto:sage [2005/10/26(水) 10:45:30 ID:J1h3yCQS] >>718 ttp://www.kde.gr.jp/ml/Kuser/msg04076.html 要するに該当ファイル中の #include <freetype/freetype.h> を #include <ft2build.h> #include FT_FREETYPE_H に直せばよい。
724 名前:login:Penguin [2005/10/26(水) 20:04:52 ID:7wGr95kq] >>722 java-gnome vs gtk#とかおもしろそう。
725 名前:login:Penguin [2005/11/26(土) 16:49:49 ID:QuE9fj5+] GTK+2.0以降 で GDK Imlib を使う方法はないもんでしょうか。
726 名前:login:Penguin mailto:sage [2005/11/29(火) 01:33:56 ID:NZ7bfDmC] UIManagerでMenuToolButtonを扱うにはどうすればいいのでしょうか?
727 名前:login:Penguin mailto:sage [2005/12/05(月) 17:09:52 ID:yTnWD7jY] GtkTextViewで質問があります。 ウィンドウにメニューバーとテキストビューをのせています。 横スクロールバーはなくし、長文を折り返して表示させたいのですが、 ウィンドウが勝手に広がってしまいます。 また、ウィンドウを狭くしようとしても、狭くできません。(マウス操作で)
728 名前:login:Penguin mailto:sage [2005/12/05(月) 18:04:47 ID:BtGpeGNp] >>727 gtk_text_view_set_wrap_mode()
729 名前:login:Penguin mailto:sage [2005/12/07(水) 12:30:25 ID:/q9zEwb5] >>728 レスありがとう。 ワードラップ効かすと折り返しが妙なとこでされちゃうので、NONEにしてます。 具体的には、空白9つのあとに数字を記述した行と連続した文字の行で、表示位置がズレてしまうので。 1 2 3 4 5 6 7 8 9 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
730 名前:login:Penguin mailto:sage [2005/12/07(水) 12:37:34 ID:/q9zEwb5] >>729 1 2 3 4 5 6 7 8 9 ありゃ、先頭に空白いれたつもりが... それからGtkTextViewのかわりにVTE を使って、どうように表示できるようにしてみたのですが、 表示自体はうまくいけそうだったのですが、ウィンドウのリサイズで内容を書き換えてくれないし、 なにやら Gdk-CRITICAL が出力されてます。 [vte:xxxxx]: Gdk-CRITICAL **: gdk_gc_get_colormap: assertion `GDK_IS_GC (gc)' failed 因に SuSE 10.0 使ってます。
731 名前:login:Penguin mailto:sage [2005/12/07(水) 13:32:02 ID:uBfmckMe] >>727 以前、狭くできなくて悩んだ時は textview に gtk_widget_set_size_request で 適当なサイズを入れて狭くできるようになった。 理屈はわからないけど
732 名前:login:Penguin mailto:sage [2005/12/07(水) 17:02:44 ID:/q9zEwb5] >>731 ご教授いただきましたように、 gtk_widget_set_size_request (GTK_TEXT_VIEW(text), 100, 75); と一行、適当(値も適用)に入れてみました。 確かにウィンドウのリサイズができるようになりました。 ただ、折り返して表示してくれないのでorz。 今は、VTEで作業してます。
733 名前:login:Penguin mailto:sage [2005/12/07(水) 17:20:33 ID:gfGZYrS3] >>732 お前が折り返しをしないように設定してるからだろ。ちっとは頭を使え
734 名前:login:Penguin mailto:sage [2005/12/07(水) 17:38:00 ID:/q9zEwb5] >>733 ワード・ラップとは、ある単語が一行で完了しない場合に、(単語の区切りを意識して) 強制的にその単語を次の行に移動して表示する機能をいいます。 単語の区切りを無視してくれるようにはできないですよねぇ...
735 名前:login:Penguin mailto:sage [2005/12/07(水) 18:02:40 ID:gfGZYrS3] >>734 GTK_WRAP_CHAR リファレンス嫁
736 名前:login:Penguin mailto:sage [2005/12/08(木) 10:11:26 ID:NkHarRL9] >>735 GTK_WRAP_CHAR にもしたが、へんなとこで改行されてしまうんだけれど... リファレンス嫁んorz
737 名前:login:Penguin mailto:sage [2006/01/28(土) 06:10:36 ID:y31wlGaX] pcmanfm.sourceforge.net/
738 名前:login:Penguin mailto:sage [2006/01/28(土) 13:29:29 ID:amWZrwNv] >>736 ここでゴチャゴチャ訊いてるより自前でやってしまう方が早いと思うが
739 名前:login:Penguin mailto:sage [2006/02/08(水) 12:18:47 ID:EWHkI7FI] コマンドライン引数で `-' を渡したいんですが、gtk_init() で `-' は取り除 かれるみたいですね。 なんか回避方法とかありますか? やっぱ gtk_init() の前で一旦引数をパーズするしかない?
740 名前:login:Penguin mailto:sage [2006/02/08(水) 20:36:38 ID:CYm40DFq] 慣習としては -- をおいてオプションと引数を区別するんじゃないか。 GTKが対応してるかどうかは知らんけど。
741 名前:login:Penguin mailto:sage [2006/02/08(水) 23:26:08 ID:EWHkI7FI] >>740 うーん、オプションとして `-' を渡したかったんですけどね。`-file -' で 標準入力からデータを読む、みたいな。とりあえず gtk_init() の前で捕捉す ることで逃げました。 ちなみに `--' には対応してるみたい。試してみたら `--' の後の `-' は gtk_init() を通過してきた。
742 名前:login:Penguin mailto:sage [2006/02/19(日) 15:58:57 ID:P101Qt/X] シグナルの発行ってどうやるの?
743 名前:login:Penguin mailto:sage [2006/02/20(月) 13:14:52 ID:OBEFgOmS] g_signal_emit()
744 名前:login:Penguin mailto:sage [2006/02/21(火) 01:18:20 ID:OjKUo/jf] コールバック関数の中でブロッキングする処理があるんですが ウインドウ上のボタンを押されたらキャンセルさせたいです。 でもコールバック関数がブロッキングしてたらgtk_main()に返らない のでキャンセルボタンには反応できないんでしょうか? 解決方法をご存じの方がいらっしゃいましたら教えてください。
745 名前:login:Penguin mailto:sage [2006/02/22(水) 00:35:56 ID:DgPvEyu9] >>744 よくわからんが、長時間かかる処理をキャンセルできるようにしたいということか? gtk と関係ないがスレッドとかどうよ?
746 名前:744 mailto:sage [2006/02/22(水) 22:32:46 ID:s0bZ0aZZ] うーん、スレッドでもいいんだけど割り込み処理みたいなこと できないかなぁーと思いまして。。
747 名前:login:Penguin mailto:sage [2006/02/23(木) 14:41:15 ID:9eTddDoJ] 適当な間隔で while (gtk_events_pending()) gtk_main_iteration(); を呼んで一時的にイベントループを回してやると、スレッドを使わなくてもUIの処理ができるようになる。 システムコールなんかで長時間ブロックするような場合には使えないけど。
748 名前:login:Penguin mailto:sage [2006/02/23(木) 22:16:58 ID:HDaCfi3a] >>743 サンキスト
749 名前:login:Penguin [2006/04/06(木) 09:06:33 ID:xwiqVJCG] すいません、どうしてもわからなかったのですが… gtk_label_set_markup() で '<' と '>' を表示する方法がわかりません。 タグの開始(終わり)と判断されてしまうようです。 すいません、よろしくお願いいたします。
750 名前:login:Penguin mailto:sage [2006/04/06(木) 13:56:52 ID:lK+xfIyV] >>749 以下の様にしたらちゃんとイタリックで「<test>」と表示されるみたいだけど、 駄目すか。 m = g_markup_printf_escaped ("<span style=\"italic\">%s</span>", "<test>"); gtk_label_set_markup (GTK_LABEL(label), m); g_free (m);
751 名前:749 mailto:sage [2006/04/07(金) 00:53:52 ID:064lZiFe] >>750 ありがとうございました、行けました。
752 名前:login:Penguin [2006/04/08(土) 16:50:28 ID:qD5vNEHv] GTKアプリケーションでウィンドウを分割しているウィジット(マウス操作でレイアウトの棒を左右に動かせる)を見掛けたのですが あれは何と言うウィジットなのでしょうか。 ウィジットの名前が分からないと調べようもないので教えてください
753 名前:login:Penguin [2006/04/08(土) 17:07:07 ID:et4vCTR5] 多分 GtkHPaned っていうやつだと思う Glade(2.12.1)だと右から2番め下から2番めにあるやつ
754 名前:login:Penguin [2006/04/09(日) 00:12:12 ID:lWv/4qoU] >>753 ありがとうございました。 そのウィジットで出てきました
755 名前:login:Penguin [2006/04/26(水) 18:09:37 ID:k4vlbIwh] gtkで画面をすぐに更新させるにはどうしたらいいでしょうか。 swapBufferやflushのようなカンジの関数があるかと 思ったんですが、見付かりませんでした。
756 名前:login:Penguin mailto:sage [2006/04/26(水) 23:15:06 ID:aZu1U6v6] GdkFlush って無かったっけ?
757 名前:login:Penguin mailto:sage [2006/05/02(火) 08:17:35 ID:UqKVJP00] 関数名長いよ!ヽ(`Д´)ノ ウワァァァン
758 名前:login:Penguin mailto:sage [2006/05/02(火) 08:57:43 ID:e/deB1lW] ああ、C言語だからな。
759 名前:login:Penguin [2006/05/09(火) 07:32:53 ID:reS9af81] GtkComboBox で質問です…。 GtkComboBox の signal で "changed" が発行された時と同じような感じで コールバックを呼びたいのですが、 選択されたアイテムが前のと同じでも呼べるようにするにはどうすればよいでしょうか… 識者の方、お願いいたします。
760 名前:login:Penguin [2006/05/21(日) 23:50:35 ID:wP3kA47Z] Gtk初心者です get_wigetを使ってウィジェットから値を取り出したのですが, undefined reference to `get_widget` というエラーメッセージが出ます 何か解決する方法はあるでしょうか? また,代替手段などありましたら教えて下さい
761 名前:login:Penguin mailto:sage [2006/05/22(月) 00:15:02 ID:lYbn8Pcy] >>760 文が変
762 名前:760 mailto:sage [2006/05/22(月) 00:36:55 ID:cF96P9p7] 失礼しました.訂正します > get_wigetを使ってウィジェットから値を取り出したのですが, ウィジェットから値を取り出すために,get_widgetを使って ウィジェットを取得したいのですが, > undefined reference to `get_widget` > というエラーメッセージが出ます > > 何か解決する方法はあるでしょうか? > また,代替手段などありましたら教えて下さい よろしくお願いします
763 名前:login:Penguin mailto:sage [2006/05/22(月) 10:15:59 ID:DWYo0BTY] >>760 私はsupport関数を使わないからよく分からないけど、 gtk+-1.x用のgladeでは get_widget だった関数が 2.0 では lookup_widget に なってるっぽい。 こんなんあった。↓ ttp://lists.ximian.com/pipermail/glade-users/2003-October/001603.html glade使ってるんだよね? glade使ってないのにgladeで準備された関数を 使っているという話じゃないよね?
764 名前:760 mailto:sage [2006/05/22(月) 21:47:05 ID:cF96P9p7] >>763 ありがとうございます > glade使ってるんだよね? glade使ってないのにgladeで準備された関数を 使っているという話じゃないよね? はい.glade使ってます. でも,lookup_widget以外を使って同じような関数って,皆さんどのようにしているんでしょうか? それから,GTKを学習する上で参考になるHPなどありましたら, 教えて下さい
765 名前:763 mailto:sage [2006/05/23(火) 00:10:16 ID:gEQHRwr8] >>760 GTKを簡単かつ体系的に教えてくれるHPは無いかもなぁ。 GTK自体が簡単なもんじゃないし、変化もしていくからね。 私が参考にしているのはGNOMEのプログラミング関係のドキュメント類。 それとGTK+とかglibのソース。 それと、gtk-demoというコマンドはとても参考になります。 gladeのsupport関数を使わない方法は、 モジュール的構造も考えなきゃならない少し大規模なプログラミングを するとなると、自然にそうなる気がする。これは言語(C言語とか)を じっくり体系的に勉強する必要があると思う。そうすると自然に見えてくるかな。 変数のスコープ(通用範囲)に大きく関わります。 簡単に言うと、widgetのアドレスさえどこかに覚えておけばいいので、 必要なものを構造体にしてそれを関数の引数として渡せばいい。 あるいはGUI部分だけ1ファイルにしてその中の最初でstatic変数として定義とか。 この場合はwidgetからの値の取得とかwidgetの書き換えとかはこの1ファイル中で 行って、他の部分にはwidgetのアドレスは必要ない状態にするといいかな。 ちなみに、lookup_widgetを使わない場合はinterface.cの GLADE_HOOKUP_OBJECT とかのマクロ部分は必要なくなります。
766 名前:login:Penguin [2006/05/24(水) 10:41:45 ID:zKYF/EzE] gtk+-2.6 をつかってるんですが、 GtkRadioButtonで、group内のすべての radio buttonを inactiveにする方法ってあります? gtk_toggle_button_set_active(radio_button, FALSE) だと activeになっているものを inactive にしてくれないみたいなんですが。
767 名前:login:Penguin mailto:sage [2006/05/24(水) 15:19:22 ID:Yn9YRiJ9] >>766 必ず一つだけが active になってるのが radio button なので、できない。
768 名前:login:Penguin mailto:sage [2006/05/25(木) 02:56:23 ID:VlZmec8+] >>767 そうみたいですね... newしたときから activeになってるみたいだし。 どれも選択されていない RadioButtonって需要ないのかしらん。 素直に GtkToggleButtonに signal組み合わせて作ります。
769 名前:login:Penguin mailto:sage [2006/06/02(金) 00:28:01 ID:hcRTarUB] gtk_button_new_from_stockはgtk_buttonと名が付くのに何で GtkWidgetを返しやがりますか
770 名前:login:Penguin mailto:sage [2006/06/02(金) 02:04:06 ID:N+GTRApa] gtk_hogehoge_new は GtkWidget *を返すって conventionじゃないの? そのほうが gtk_widget_showとかに渡すときも面倒じゃないし。 gtk_hogehoge_do_something の第1引数は たいてい GtkHogehoge だから その場合は面倒だけど。 OOPLでやればそんな面倒はないんだけどね。
771 名前:login:Penguin [2006/06/08(木) 02:09:17 ID:+cYFIqs+] 質問です。 GTK のメインループで使っている GMainContext は g_main_context_default () で 取れますか? 実は main_context = g_main_context_default (); して、この main_context を他のライブラリに使用しようとしたら(ライブラリの初期化に必要) 「FreeBSD ではうまく動く、しかし Windows ではうまく動かない」 という現象に出くわしました。 なにせ main context も loop も理解していないので…。 どなたかお教えくださいませ.............
772 名前:login:Penguin [2006/06/08(木) 03:26:47 ID:DJniGV22] gtk_widget_destroyと g_object_unrefってどう使い分けるんでしょう? ほかからも参照されている可能性を考えると g_object_unref() を 使うべきの気がするんだけど、だとすると gtk_widget_destroy() が ある意味がわからない...
773 名前:login:Penguin mailto:sage [2006/06/11(日) 20:12:39 ID:J6bQThTU] gtk_window_set_title(window,"ゲイツ砲作動");
774 名前:login:Penguin mailto:sage [2006/06/14(水) 01:55:53 ID:t+ofgOcF] glibとかgtkのドキュメントでman形式のものってありますか? --enable-manとかやってみたけど、よくわかりません。 どこかへのポインタでもいいですので、教えていただけませんか。
775 名前:login:Penguin mailto:sage [2006/06/14(水) 13:34:14 ID:iviE8HFQ] つ/usr/share/gtk-doc
776 名前:login:Penguin mailto:sage [2006/06/25(日) 01:13:32 ID:FTDnSR/k] >>772 閉じるボタンに繋げる合などだけ destroy で、他は unref でいいと思う。 ほかから参照されているときに destroy しても 使いものにならなくなるだけで問題はない。 destroy メソッドを実行すると初回のみ destroy シグナルが発行される。 参照がまだあれば、object は回収されずに残る。 unref メソッドの場合、最後の参照だった場合のみ destroy finalize の順に 実行されて、object が回収される。 似たような質問がここに mail.gnome.org/archives/gtk-list/2001-August/msg00105.html GtkObject の終了処理について developer.gnome.org/doc/GGAD/sec-finalization.html
777 名前:login:Penguin mailto:sage [2006/06/26(月) 11:40:10 ID:M7qvCUGx] OpenLDev ttp://www.openldev.org/ これよさげ
778 名前:login:Penguin mailto:sage [2006/07/03(月) 22:12:38 ID:pWv0Yxym] GTK+ 2.10.0とGLib 2.12.0のリリースアナウンスメントをwww.gtk.orgで発見 でもリリースノートとtarballは、まだなのね…
779 名前:login:Penguin mailto:sage [2006/07/06(木) 20:30:35 ID:xw7f/fG0] Gtk使えねぇええええ TreeModel超糞。
780 名前:longhon [2006/07/17(月) 23:28:47 ID:BTBgIeR8] いまGtkをまなんでexcelみたいな表を作ろうと考えたのですが、 tree view list を使ってできるというところまではわかったのですが、 日本語のチュートリアルはなく、原本のリファレンスを見るものの さっぱりな状態です。ちょっと教えていただけないでしょうか? クレクレ君ですみません。
781 名前:login:Penguin mailto:sage [2006/07/18(火) 00:17:21 ID:KWhoRQuP] Linuxならgtk-demoでサンプルが見れるぜい
782 名前:longhon [2006/07/18(火) 00:56:09 ID:P7E0MH5b] おーdemoのバージョンってどうやってしらべるんだろ?
783 名前:login:Penguin mailto:sage [2006/07/18(火) 01:07:07 ID:lOzLf0iO] 表作るなら>>659 みたいなのもあるらしい。 俺はListStore程度で済む事しかやらん(やれん)から使った事ないけど。 あとリファレンスはruby-gtkのが割と日本語化されてて初めは楽。
784 名前:login:Penguin [2006/07/18(火) 06:48:40 ID:TIhQa3Ub] jpegイメージを表示するプログラムはどれくらいかんたんにできますか?
785 名前:longhon [2006/07/18(火) 16:17:54 ID:P7E0MH5b] そのListstoreがわからないーーー
786 名前:login:Penguin mailto:sage [2006/07/18(火) 16:37:02 ID:CMZdz4SS] 英語で良いならttp://scentric.net/tutorial/があるな。
787 名前:login:Penguin mailto:sage [2006/07/18(火) 19:37:56 ID:Af6G0/qF] >>784 #!/usr/local/bin/perl use Gtk2 '-init'; $win = new Gtk2::Window->new(GTK_WINDOW_TOPLEVEL); $img = new Gtk2::Image->new; $win->signal_connect("delete_event", \&qu, undef); $win->add($img); $img->set_from_file("hoge.jpg"); $win->show_all; Gtk2->main; exit; sub qu { Gtk2->main_quit; }
788 名前:longhon [2006/07/21(金) 00:43:24 ID:6uqESCNY] ソートとeditが同時に出来ないーー static void add_columns(GtkTreeView *treeview) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model(treeview); /* column for date */ renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_get_column(treeview, COLUMN_DAY); //column = gtk_tree_view_column_new_with_attributes("Daisuke", renderer, "text",COLUMN_DAY, NULL); g_signal_connect(renderer, "edited", G_CALLBACK(cell_edited), model); g_object_set_data(G_OBJECT(renderer), "column", (gint *)COLUMN_DAY); gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), -1, "Date", renderer, "text", COLUMN_DAY, "editable", COLUMN_EDITABLE, NULL); gtk_tree_view_column_set_sort_column_id(column, COLUMN_DAY); gtk_tree_view_append_column(treeview, column); 以下略
789 名前:longhon [2006/07/21(金) 02:15:17 ID:6uqESCNY] 訂正 "Daisuke" -> Date デバックの張ってしまった
790 名前:login:Penguin [2006/07/22(土) 22:44:27 ID:ePUeuv0L] リストの更新ってどうしりゃいいんだ?
791 名前:login:Penguin mailto:sage [2006/07/23(日) 03:07:35 ID:amAZ2PT+] >>790 リストって何のリストだお
792 名前:login:Penguin [2006/07/23(日) 05:14:23 ID:x3i4d7lC] GTKのスレで質問するのは適切ではないかもしれないのですが、 リアルタイムに描画を更新するプログラムでVSYNCを取得するって どうすればいいのですか? 簡単なアニメーションを表示させたくて、ウィンドウシステムや ウィジェットなどはなんでもいいのですが、普通はどのようにVSYNCを 取得するものなのでしょうか? ウィンドウシステムごとに固有の方法が用意されている? それともカードのレジスタかなんかから直接とってくるのでしょうか? (それともVSYNCなんて取る必要はない?) 描画関係に関してはまるっきり素人なもので…
793 名前:login:Penguin mailto:sage [2006/07/23(日) 05:59:52 ID:9cNKicFy] 無理無理
794 名前:login:Penguin mailto:sage [2006/07/23(日) 08:32:45 ID:h2mLkene] >>792 DRM_IOCTL_WAIT_VBLANK で検索してみ
795 名前:login:Penguin [2006/07/23(日) 11:29:11 ID:x3i4d7lC] >>794 ありがとうございました! 調べてるときに、割り込みでVBLANKがとれない場合 単にVBLANKの周期で処理を行うようなpatchがあったりしたのですが こういったことも有効なものなのでしょうか? (何か根本的に勘違いしてる、私?)
796 名前:login:Penguin mailto:sage [2006/07/24(月) 20:55:51 ID:OZvD/B1G] 意味ないんじゃないのそれ。 単に周期を合わせるのだと、運がよければvsyncに合うけど、 運が悪ければ書き換えの最前線が常に画面上になるんじゃないのかな。
797 名前:login:Penguin mailto:sage [2006/07/25(火) 20:47:07 ID:ObYp5Z0J] 無理無理
798 名前:login:Penguin mailto:sage [2006/07/25(火) 22:07:19 ID:ANae/VXn] gtkでほにゃららウィザードみたいな感じで画面全体を 遷移させたいのですが、どうすればいいか教えてください。 やっぱり神様windowがパネルごとshow/hide?
799 名前:login:Penguin mailto:sage [2006/07/26(水) 03:03:30 ID:nO5MsZXX] gtk_window_fullscreen ttp://developer.gnome.org/doc/API/2.0/gtk/GtkWindow.html ?
800 名前:login:Penguin mailto:sage [2006/07/28(金) 16:03:10 ID:gdBL/xGV] ドルイド使えん? developer.gnome.org/doc/API/2.0/libgnomeui/GnomeDruid.html って、全画面にはならんのかな.
801 名前:login:Penguin mailto:sage [2006/08/01(火) 00:31:39 ID:L0TWKid5] おまいらやっぱCで書いてる?
802 名前:login:Penguin mailto:sage [2006/08/03(木) 17:59:03 ID:Pbm1StqY] Haskellで。
803 名前:login:Penguin mailto:sage [2006/08/03(木) 21:08:21 ID:PrqlXciu] #include <gtk/gtk.h> がダメで `pkg-config --cflags --libs gtk+-2.0` だと大丈夫なのはどういう意味があるのでしょうか。 windows.h のように普通にincludeできないと違和感を感じてしまうのですが…
804 名前:login:Penguin mailto:sage [2006/08/03(木) 21:25:07 ID:3S1RLjXN] 何がどうダメなのさ
805 名前:login:Penguin mailto:sage [2006/08/03(木) 21:26:34 ID:ONA5Yror] pkg-config --cflags --libs gtk+-2.0 を実行したらすぐわかるような
806 名前:login:Penguin mailto:sage [2006/08/03(木) 23:21:48 ID:k7FfsSEw] gtk を試しはじめてネット上で検索とかしまくってるんだけど、 検索すればするほど日本ではあまり使われてないような…。 みんな何作ってるの?公開とかしてる?
807 名前:login:Penguin mailto:sage [2006/08/03(木) 23:29:07 ID:B7tJQEHQ] >>806 本が結構売られているよ。 GTK+で有名なのはGIMPかな。っていうかこれのために作られたのがGTK+・・・
808 名前:login:Penguin mailto:sage [2006/08/04(金) 02:18:59 ID:1ByfcMbI] >>806 JDでスレ検索
809 名前:login:Penguin mailto:sage [2006/08/04(金) 16:25:35 ID:QDVDuP06] GTK+-2.0の日本語の本ってある??>>806 結局、公式 gnome 開発者ガイド使ってるけど、これも突っ込み甘い.. www.amazon.co.jp/gp/product/1593270305/250-5057288-9394607?v=glance&n=52033011&s=english-books
810 名前:login:Penguin mailto:sage [2006/08/12(土) 23:07:37 ID:gUx2Zo6A] APIのレファレンスマニュアルのページ読むと必ずハングするんですが、 なんか意地悪してるんでしょうか。
811 名前:login:Penguin mailto:sage [2006/09/01(金) 22:01:53 ID:9hBp2t2i] >>810 GTKベースのソフトで読まないとハングするよ。
812 名前:login:Penguin mailto:sage [2006/09/02(土) 09:14:33 ID:4priHuM5] 読むのに使ってるソフトのスレで訊くべきじゃないの
813 名前:login:Penguin mailto:sage [2006/09/03(日) 22:39:48 ID:tLDrWzmC] GtkMenuToolButtonをGtkUIManagerで簡単に作る方法は? UIのXMLとGtkActionEntryで一元的に管理したいんだが。
814 名前:login:Penguin [2006/09/21(木) 07:39:24 ID:5S0sHSq3] すいません、質問です。 Windows で半角英字には Arial 10 を、日本語には MS PGothic 10 をと言うように、 別々にフォントを rc ファイルで指定したいのですが、無理ですか…? font_name="Arial 10,MS PGothic 10" は試したのですが、ダメでした…。
815 名前:login:Penguin mailto:sage [2006/09/22(金) 05:29:30 ID:oc0o+F4Y] >>814 GNOME使ってるなら gconf-editorで /desktop/gnome/interface/font_name Arial, MS PGothic 10
816 名前:814 mailto:sage [2006/09/22(金) 07:13:17 ID:shCBdU/U] >>815 ありがとうございます。GNOME は使っていません。 単体なソフトなもので…。 もう少しいじってみます。
817 名前:login:Penguin mailto:sage [2006/09/23(土) 02:53:42 ID:DBZDIlnA] >>816 試してないけど、 GtkSettingsで "gtk-font-name"というプロパティを Arial, MS PGothic 10 に設定したらできるかも
818 名前:814 mailto:sage [2006/09/23(土) 09:00:47 ID:oVJ5FxNJ] >>817 ありがとうございます。 試してみたのですが、だめでした…。 実は後で気がついたのですが、 font_name="Arial, MS PGothic 10" は FreeBSD でうまく行って、Windows ではうまく行かないことが分かりました。 日本語は GTK デフォルトのフォントになってしまうようです。 (firefox とか thunderbird とかと同じ) よく分からないのですが、放置しておきます。とほほ…。
819 名前:814 mailto:sage [2006/09/26(火) 09:24:06 ID:G1FxsBCP] 一応自己解決しました。 font_name="Arial,MS PGothic 10" ですが、コンマの後にスペースがあると、 Windows ではダメなようです。(FreeBSD では OK ですが) なんかちょっと悲しい。
820 名前:login:Penguin mailto:sage [2006/10/06(金) 23:35:59 ID:s7TA8Fbc] >>819 遅レスだがメモメモ…
821 名前:login:Penguin mailto:sage [2006/10/26(木) 22:56:28 ID:gIte4gPi] ちょいと質問なんですが、gtk_label_get()の第二引数って、取得したテキストを指すポインタのポインタの領域をmalloc等で領域確保する必要はないんですか? char *s; GTK_LABEL(label),&s); として、sをg_mallocしてg_freeしたら、なんか実行時にエラーが出ました。 知ってる人いたら教えてください。
822 名前:login:Penguin mailto:sage [2006/10/26(木) 23:16:38 ID:/n9s8yCa] >821 >It does not make a copy of this string so you must not write to it. なので下手にいじってはいけない。多分constと思っていい。 あとそれdeprecated。
823 名前:821 mailto:sage [2006/10/26(木) 23:48:57 ID:gIte4gPi] >822 ありがとうございました。(コードが一部抜けてました。) gtk_label_get(GTK_LABEL(label),&s); とした場合、sがconst扱いになるということですね? あと、deprecatedというのは、gtk_label_get()の使用は推奨されてないということでしょうか? ならば、ラベルの名前を取得する方法は、どうすればよいでしょうか?
824 名前:login:Penguin mailto:sage [2006/10/26(木) 23:54:02 ID:1m0EYGYM] >>823 gtk_label_get_text() or gtk_label_get_label()
825 名前:821 mailto:sage [2006/10/27(金) 00:36:56 ID:l81dNlg+] >824 ありがとうございました。
826 名前:login:Penguin mailto:sage [2006/11/02(木) 00:27:19 ID:83qYmDpR] GtkWindow のサイズをマウスを使って変更したときに、 マウスボタンを離すまでシグナルが発生しないようにしたいんですけど GTK+のチュートリアル読んでもさっぱり・・・ どなたか手がかりを下さいませんか。 今のままだとサイズ変更の途中で再描画されてしまってマズー
827 名前:login:Penguin mailto:sage [2006/11/04(土) 03:13:31 ID:oVt1SXTf] どちらかっていうと Window Managerの設定じゃないの? と、思い付きを書いてみる。
828 名前:login:Penguin mailto:sage [2006/11/04(土) 07:40:52 ID:wQVg/xG3] g_signal_handler_blockとg_signal_handler_unblock だったと思う
829 名前:login:Penguin mailto:sage [2006/11/04(土) 20:06:13 ID:taceIu9P] >>827 私もそう思った。 opaqueとかoutlineとかいう名称でいろんなWMで設定できる項目だと思う。 ソフトの方でその動作を組み込むこともできなくはないんだろうけど。
830 名前:826 mailto:sage [2006/11/05(日) 22:06:22 ID:rcTSwJgs] 提案ありがとうございます。WMですか。 Windowsでやってるのでその辺の設定がちょっと。 g_signal_handler_block あたりで何とかチャレンジしてみます。
831 名前:login:Penguin mailto:sage [2006/11/08(水) 09:48:14 ID:CnqaUpTW] 画面のプロパティ→デザイン→効果→ 「ドラッグ中にウィンドウの内容を表示する」をoff Windows XPの場合。
832 名前:826 mailto:sage [2006/11/12(日) 11:01:10 ID:bAXTQ/Hd] 結局、Eventboxとgtk_widget_size_request使って実装しますた。 ボタンイベントの座標を取得して、 Eventboxの右下の部分だけに反応するようにいじりました。 これだとリサイズ中の枠とかは出ないのが難点ですけど。 831さんの方法が一番スマートだとは思いますw 皆さんありがとん。
833 名前:login:Penguin mailto:sage [2006/11/17(金) 00:05:19 ID:LQk3CfzK] 質問ですが、gtk_main_quit()した後って、作ったウィジェットとかが確保していたメモリは全てフリーされるのでしょうか? さらに、GDKのウィジェット(GdkPixmapとか)も開放されるのでしょうか?
834 名前:login:Penguin [2006/11/24(金) 14:25:27 ID:7Nf7BP84] おい、お前ら JCL切ってパンチカードでFORTRANプログラムやってた漏れが来ましたよ。 GLib, GObject, Pango, ATK, GdkPixbuf, GDK について取り合えず概要を教えやがれ。
835 名前:login:Penguin mailto:sage [2006/11/24(金) 14:32:58 ID:I7rtRk4j] 消えろカス
836 名前:login:Penguin [2006/11/24(金) 15:05:31 ID:7Nf7BP84] Linux遣ってる香具師って人間性に問題ある奴が多いんだよな。 そんなことはない!835見たいな奴は俺も嫌いだ!って香具師がいるなら834にレス寄越せや。
837 名前:login:Penguin [2006/11/24(金) 16:34:59 ID:N0elR/SA] そっか 835みたいなのがデフォルトなのか。
838 名前:login:Penguin mailto:sage [2006/11/24(金) 18:24:29 ID:YADT00jb] プログラミングやる気があるならググレよ
839 名前:login:Penguin mailto:sage [2006/12/04(月) 21:52:48 ID:739N7ZVz] >>838 ググったらここにたどり着いたんだろ。 他にGTK+関係の掲示板ってあるのか?
840 名前:login:Penguin mailto:sage [2006/12/05(火) 15:51:35 ID:Zc3lkiGA] 少なくともGTKでぐぐった結果の質問とは思えないな。
841 名前:login:Penguin [2006/12/09(土) 02:26:24 ID:t58tuYkG] 質問させてください。 DebianでGTK+を使ったプログラムをコンパイルする際に、必要となる パッケージを教えていただけないでしょうか?
842 名前:841 [2006/12/09(土) 02:49:19 ID:t58tuYkG] libgtk2.0-devをインストールしたらコンパイルできました。 お騒がせしました。
843 名前:login:Penguin [2006/12/22(金) 16:34:29 ID:WGodCSmn BE:91837692-2BP(1002)] ごめんなさい。質問です。 glade2.12 + libglademm-2.4 + gtkmm-2.4でGUIアプリ作成しています。 glade上で作成したカスタムダイアログ(名前 = dialog_add)を、 メインウィンドウ上のボタン押下でモーダル表示させたいです。 ダイアログのプロパティは 初期「表示可否」は 「いいえ」 「モーダル」を「はい」 にしています。 Gtk::Dialog* dialog_add = 0; m_refGlade->get_widget("dialog_add", dialog_add); dialog_add->run(); として表示させたいのですが、 表示されるダイアログがタイトルバーが付いていないし、「キャンセル」や「OK」 ボタンを押しても反応してくれません。 何かやり方が間違っているのでしょうか? glade使わないカスタムダイアログの作成方法の参考ページはあったのですが、 glade使用した例は見付かりませんでした・・・。 どなたかご教授ください。
844 名前:login:Penguin mailto:sage [2006/12/23(土) 03:24:31 ID:kVWxGBD4] gtk_dialog_runの使い方とか使用例をもっとよく調べるといいよ
845 名前:login:Penguin mailto:sage [2006/12/25(月) 00:04:10 ID:m4WzEBN4] とりあえず gtklab.sourceforge.jp で、初歩の初歩は分かった。 次はフォントの選択方法を知りたいという人間は 何見ればいいすか。
846 名前:login:Penguin mailto:sage [2006/12/25(月) 22:06:24 ID:j/37M/hz] ttp://www.gtk.org/ の GTK+-2.0 Tutorial か API Reference じゃない? フォントの選択方法ってなんだろう? ダイアログなら GtkFontSelectionDialog があるけど。
847 名前:login:Penguin mailto:sage [2006/12/26(火) 14:37:34 ID:715StEwX] フォントの扱いを飲み込むためにもPango眺めとくのは必須だろ。
848 名前:login:Penguin mailto:sage [2006/12/26(火) 16:35:39 ID:SUHLiAKP] プログラミングじゃ無いんだけど gtkrcの情報交換してるとこは何処? engineによって書式も様々なんで
849 名前:login:Penguin [2006/12/30(土) 00:11:53 ID:AKdqp1vp] SUSE 9.2でリソースファイルで色設定しても反映されません。 同じソースとリソースファイルでSUSE10.2で実行すると反映されます。 また、SUSE10.2でもボタンのラベルに色がつくのですが、 ボタンそのものに色が付きません。 この辺詳しいHPとかありませんかね?
850 名前:login:Penguin [2007/01/11(木) 13:58:24 ID:fD42ZP3M] X/Toolkit(?)のXtAppAddInput()というモジュールと同等の機能を持つ GTKのモジュールってありますか? 開発言語はC言語です。 う〜ん、探しても見つけられなかった。探し方が悪いのかな・・・?
851 名前:login:Penguin mailto:sage [2007/01/11(木) 14:28:22 ID:SmIH3fhc] >>850 XtAppAddInput()がどういうものか説明すればいいのに。 そういうききかただとX/Toolkit(?)とGTKの両方を知っている人しか答えられないでしょ。
852 名前:850 [2007/01/11(木) 14:34:57 ID:fD42ZP3M] >>851 その通りですね。 XtAppAddInput()は指定したファイルディスクリプタの状態が 変化(Read、Write、Exe可能になった等)した場合に登録したコールバック関数を 呼び出すというものです。 select()にコールバック関数呼び出し機能を追加した感じのモジュールです。
853 名前:login:Penguin mailto:sage [2007/01/11(木) 15:11:36 ID:SmIH3fhc] >>852 こういうの? www.gtk.org/tutorial/x1772.html 日本語訳:www.gnome.gr.jp/docs/gtk+-2.0.x-tut/sec-monitoringio.html Exe可能ってのはないけど…。
854 名前:850 [2007/01/12(金) 18:37:22 ID:xAKQOOb4] >>853 ありがとうございます gdk_input_add()で、できそうですね。
855 名前:login:Penguin mailto:sage [2007/01/12(金) 19:52:55 ID:diKM4N2h] glib の Main Event Loop あたりを使うんじゃないかと思うんだが…。
856 名前:login:Penguin [2007/02/01(木) 18:51:51 ID:oa7P0Xiu] GTK+でテキスト文字(漢字)をgtk_label()で描画するときに、 フォントのサイズで位置調整したいんですが、幅を取得する関数ってないんでしょうか? gdkでフォントセットをロードして描画する時は、gdk_text_width()が使えるんですが。。 gtkだけで簡単に済ませたいので。 よろしくお願いします。
857 名前:login:Penguin [2007/02/03(土) 08:37:48 ID:yTpUnzEZ] gtk+2.0でボタンwidgetとlabel widgetを 生成・消去(destroy)を繰り返し て走らせておくと徐々にメモリを食いつぶしているようにみえるんですが… そう言うのを確認した人いますか? もし居たら対策は?
858 名前:login:Penguin mailto:sage [2007/02/05(月) 21:07:30 ID:YgSmvrHE BE:102858252-2BP(0)] >>857 memprof とか valgrind 使って本当にメモリリークしてるか確かめてみて
859 名前:login:Penguin mailto:sage [2007/02/05(月) 21:39:19 ID:4W+LgzvZ] >>857 やってみたけどシステムモニター眺めてわかる程のリークはしてないように見えるが。 #include <gtk/gtk.h> int main(int argc, char *argv[]) { gint i; GtkWidget *box; gtk_init(&argc, &argv); box = gtk_vbox_new(FALSE, 0); for(i = 0; i<1000000; i++){ GtkWidget *label = gtk_label_new("label"); GtkWidget *button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); gtk_widget_destroy(GTK_WIDGET(label)); gtk_widget_destroy(GTK_WIDGET(button)); } return 0; }
860 名前:login:Penguin mailto:sage [2007/02/05(月) 23:38:43 ID:jQ+mHrDJ] デストローイ忘れしてるだけなんじゃねーの
861 名前:login:Penguin mailto:sage [2007/02/06(火) 05:25:55 ID:goDIpkB2] 単にキャッシュなだけじゃないの?(参考: ttp://www.gtk.org/faq/#AEN703) 俺も前に気になった事があるけど「食い潰す」まで行く事は無いし 最終的には解放されるからもう気にしてない。
862 名前:login:Penguin mailto:sage [2007/02/08(木) 03:13:47 ID:678pSSYu] >>857 developer.gnome.org/doc/API/2.0/gtk/gtk-question-index.html の 1.5 とか。これは俺も最近まで知らなんだ…。
863 名前:login:Penguin mailto:sage [2007/02/10(土) 07:26:44 ID:3Xia/9JA] チュートリアルのrulers.cを改造して、ウインドウサイズを変更したときにルーラの目盛りも 更新するようにしたいんだけど、drawing_areaはサイズを取得出来ない・・・よね? かといってgtk_window_get_size(window, w,h);だと全体の窓サイズになってしまうし どうすればいいですか。
864 名前:login:Penguin mailto:sage [2007/02/10(土) 09:06:07 ID:cB1+Mmyj] >>863 drawing_area の configure-event 見ればいんじゃね?
865 名前:login:Penguin mailto:sage [2007/02/10(土) 18:25:05 ID:3Xia/9JA] 朝からずっと調べ続けて今ようやくわかった・・・。 expose_event で GdkEventExpose から area を参照するのね。
866 名前:login:Penguin [2007/02/14(水) 09:42:58 ID:BwmsCoUm] ファイラのようなファイルの mime タイプに応じたアイコンが並んでいるリストを作りたいんですが、 どうしたらいいんでしょうか。 手がかりだけでもかまわないので、ご教授お願いします。
867 名前:login:Penguin mailto:sage [2007/02/15(木) 02:32:20 ID:l0yfSnwW] GtkIconViewを使えって話じゃないのかな? ファイラってのがよくわからんが。 (Windowsの explorerはいつも「詳細」にして使ってるんで)。 mime-typeに応じたアイコンを取得したいってのなら、知らん。 まず、やりたいことを分割して曖昧じゃない日本語で箇条書きにして、 必要度、依存関係を書いて提示しろ。 できればこんなところに質問しないか。
868 名前:login:Penguin mailto:sage [2007/02/16(金) 17:15:53 ID:zsLloLAV] Explorerを詳細表示にして使ったところで、ファイル名の左側に 拡張子に応じたアイコンが表示されてるじゃん。
869 名前:login:Penguin [2007/02/17(土) 15:44:53 ID:fKE+Jy3+] たとえば、firefox で実装されているように、 * あるアプリケーションがすでに実行されていた場合は新しくタブでドキュメントを開く * そうでなければ、新しいウインドウでドキュメントを開く という動作を実行するのには、どういう仕掛けを使うのが一般的なのでしょうか?
870 名前:login:Penguin [2007/02/17(土) 16:43:58 ID:KR0sG7u1 BE:253234144-2BP(0)] >>869 1. プログラムを起動したときに別のインスタンスがいないかどうか確認 2. インスタンスがいたときにはそいつにメッセージ(Firefoxの場合ドキュメントのURLかな)を渡して自分自身は終了 ってことでいいかな?結局多重起動のチェックとプロセス間通信がやれればいいのね。 SylpheedではUNIXドメインソケットで1,2をやってるみたい。 Gtk+周辺のテクノロジで固めたいならD-BUSを使ってもいいかも
871 名前:login:Penguin mailto:sage [2007/02/17(土) 18:22:53 ID:CMTL+Fmk] >>870 は同じホストしか考えないプログラムの場合の一般論であって、 Xの場合はとるべき手段が違ってくる。 netscapeはXプロパティ経由で通信するので、同じスクリーンにウィンドウが 開いていればプロセス自体は別のマシンでも通信できる。 firefoxも同じ。 GDK/GTK+にXプロパティなんかのラッパーがあるかどうかは知らない。 それで見付からないなら諦めるもよしプロセスを起動するもよし、で 起動するのならば、通常のプログラム同様データファイルの一貫性保護 などを目的としてロックファイルなどによる多重起動チェックをやればいい。
872 名前:login:Penguin mailto:sage [2007/02/19(月) 23:16:35 ID:5FZGim03] >>869 とりあえずこれ読んでみたら? GTK+だけで実装しているっぽい。 gtklab.sourceforge.jp/gtkwin/gtkwin10.txt
873 名前:login:Penguin mailto:sage [2007/02/20(火) 08:11:40 ID:ONtjkv3E] ウィンドウを作らないとチェックできないのがちょっと嫌かも。 あと既に動いてるプロセスがサスペンドされたりしてたら それが復活するまで判定が終了しないんじゃね。
874 名前:login:Penguin [2007/02/22(木) 15:48:43 ID:jpFFYqu/] GTK 1.2から2.0に切り替えたら、XTestライブラリが使えなくなっちゃたんですが。 linkでエラーになります。(Undefined reference `XTestQueryExtension`) 知ってる方いましたらお願いします。 ディストリ Vine4.0 gtk2-2.4.13 分からないので、XTestをやめてXSendEvent()とかを使って書き直してます。
875 名前:login:Penguin mailto:sage [2007/02/22(木) 18:24:28 ID:ARkHAdB3] 単に-lXtstをGTKがリンクしなくなっただけでは。
876 名前:login:Penguin mailto:sage [2007/02/23(金) 09:24:50 ID:Toss6a7K] >>875 うまくlink出来ました。ありがとうございました。
877 名前:login:Penguin mailto:sage [2007/02/24(土) 17:34:31 ID:M/6/J6Qq] gtk1のソースをgtk2に変更するツールはありますか?
878 名前:login:Penguin mailto:sage [2007/02/24(土) 17:40:30 ID:R3/FZlN8] なんでも「ツール」と呼べば済むと思ってるんじゃねーぞ。 そういう奴が女性を産む機械だとか抜かすんだ。
879 名前:login:Penguin [2007/02/24(土) 18:49:12 ID:M/6/J6Qq] gtk1のソースをgtk2に変更するスクリプトはありますか?
880 名前:login:Penguin mailto:sage [2007/02/24(土) 20:15:03 ID:tree4KTM] スクリプトキディおつ えーと、あれだ。ない。
881 名前:login:Penguin [2007/02/24(土) 20:31:22 ID:Z7G0MF3p] >>878 を女性を産む、機械と読んでエロゲーとか思ったのはおれだけじゃないはずwwwwwww
882 名前:login:Penguin [2007/02/25(日) 16:21:18 ID:jPY2U1RH] あるウィジットの大きさを一定以上に広がらないようにしたいのですが、どうするのが正解ですか?
883 名前:login:Penguin mailto:sage [2007/02/25(日) 20:12:20 ID:xIfK6WPJ] いつもGladeで設定しちゃってる。
884 名前:login:Penguin mailto:sage [2007/02/26(月) 18:41:50 ID:pt8OB6ru] 前から思ってたんだが、なんでみんなlibglade使わないの? 便利なのに……
885 名前:login:Penguin mailto:sage [2007/02/26(月) 19:58:31 ID:uj4cgUSY] ライブラリ依存がどんどん激しくなるよね。 C++なんか使ってたら、hohogemmなんてリンクするものがどんどん増えていく。 ああいうの一つにまとめて標準で入れておいてくれたらもっと楽なんだけどなあ。
886 名前:login:Penguin [2007/03/03(土) 08:59:18 ID:iO4b+0oy] Windows での話しなのですが、GtkTextView を作った時に同時に日本語入力を オンにすることってできますか? input method 関係を探したんですが、どうも見つからなくて…
887 名前:login:Penguin mailto:sage [2007/03/04(日) 07:57:59 ID:gI/IeUsG] それってGTK側でやる仕事なのかなぁ。 ちょろっと調べただけだけど、ImmGetConversionStatus()でIMEの状態を調べて keybd_event()でVK_KANJIじゃない?win32apiの範疇だと思うけどな。
888 名前:login:Penguin mailto:sage [2007/03/05(月) 13:11:27 ID:n32uogVx] >>887 どうもありがとうございます。 考えてみれば Windows の API でやるのが正しいですね。 書き込みして気づきました。 ありがとうございました。
889 名前:886 mailto:sage [2007/03/06(火) 02:47:16 ID:rlQdCBer] GTK とは関係なくなってしまいましたが、 www.cam.hi-ho.ne.jp/oishi/tips.html#ime に書いてありました。ここの SetInputMethodOpenStatus() がそのまま使えました。 お手数おかけしました。
890 名前:login:Penguin [2007/03/11(日) 10:56:27 ID:bVyF8jVB] >889 そこにあるコードは著作物なのだが。
891 名前:login:Penguin mailto:sage [2007/03/11(日) 22:40:07 ID:RO7bywIf] >>890 これを見るとrpmコマンド叩くにも>>889 のリンク先に許可を求めないといけなくなるんだよね。 著作物だし。
892 名前:login:Penguin [2007/03/12(月) 09:27:43 ID:slT8Ay77] gtk_window_new() でwindow生成後に、最小化してwindowを隠すにはどうすればいいんでしょうか? 教えてください m(_ _)m
893 名前:login:Penguin mailto:sage [2007/03/12(月) 12:04:53 ID:WX8P/QrK] gtk_window_iconify() てかマニュアルぐらい読め
894 名前:login:Penguin mailto:sage [2007/03/12(月) 15:37:48 ID:slT8Ay77] >>893 ありがとうございます。m(_ _)m
895 名前:886 mailto:sage [2007/03/14(水) 00:53:00 ID:LNXDqswG] >> 890 結局必要なのは ImmSetOpenStatus() ぐらいなものなので、 #include <gdk/gdkwin32.h> void ImmSetStatus(GtkWidget *widget, ImmStatus status) { HWND hWnd = (HWND) GDK_WINDOW_HWND(widget->window); HIMC hIMC = ImmGetContext(hWnd); /* Set IMMM status */ ImmSetOpenStatus(hIMC, (status == IMM_ON)); /* Release context */ ImmReleaseContext(hWnd, hIMC); } ってしたよーん。ってほとんど GTK と関係ないっすね。
896 名前:login:Penguin mailto:sage [2007/03/19(月) 02:53:53 ID:IBwC1/nU] せっかくGTK使ってるのにプラットフォーム依存にしてしまうの?
897 名前:login:Penguin mailto:sage [2007/03/20(火) 00:43:22 ID:SW3xr29J] MinGWでgtkを勉強してるんですが、プログラムを実行するときに、 syntax error near unexpected token `main(' と出てきて、 プログラムが強制終了してしまうんですが、誰か対処法を知っていたら教えて下さい。 コンパイルは一応通ってるとは思うんですけど・・・・・。
898 名前:login:Penguin mailto:sage [2007/03/20(火) 02:09:03 ID:pOTrHDbj] とりあえずソースを晒すといいかも
899 名前:login:Penguin mailto:sage [2007/03/20(火) 04:42:36 ID:yYm494xv] GTK以前に hello worldとかを compile & 実行できているかが気になる。
900 名前:login:Penguin mailto:sage [2007/03/20(火) 16:13:54 ID:SW3xr29J] >>898 エラーがで出てたのは、このウィジェットだけを配置する プログラムなんですが、 #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *button1; GtkWidget *button2; GtkWidget *button3; GtkWidget *button4; GtkWidget *button5; GtkWidget *table; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); table = gtk_table_new(10,10,FALSE); gtk_container_add(GTK_CONTAINER(window),table); button1 = gtk_button_new_with_label("BTN1"); button2 = gtk_button_new_with_label("BTN2"); button3 = gtk_button_new_with_label("BTN3"); button4 = gtk_button_new_with_label("BTN4"); button5 = gtk_button_new_with_label("BTN5"); //前半
901 名前:login:Penguin mailto:sage [2007/03/20(火) 16:15:20 ID:SW3xr29J] //後半 button1 = gtk_button_new_with_label("BTN1"); button2 = gtk_button_new_with_label("BTN2"); button3 = gtk_button_new_with_label("BTN3"); button4 = gtk_button_new_with_label("BTN4"); button5 = gtk_button_new_with_label("BTN5"); gtk_table_attach_defaults(GTK_TABLE(table),button1,0,2,0,10); gtk_table_attach_defaults(GTK_TABLE(table),button2,2,4,0,10); gtk_table_attach_defaults(GTK_TABLE(table),button3,4,6,0,1 ); gtk_table_attach_defaults(GTK_TABLE(table),button4,6,8,1,2 ); gtk_table_attach_defaults(GTK_TABLE(table),button3,8,10,2,3); gtk_widget_show_all (window); gtk_main (); return 0; }
902 名前:login:Penguin [2007/03/20(火) 16:16:54 ID:SW3xr29J] >>899 不安になってやってみたら「hello, world」も同じエラーがでてきてできませんでした..orz。 #include<stdio.h> int main() { printf("hello, world"); return 0; } gtk+ チュートリアルのへろーわーるどは実行できるんですけど、 プログラムが終わると同じエラーがでてきます。 ぐぐったら、文字コードが関係してるらしいんですが、どれでやってもダメでした。 LINUXでやれっていうことなんですかね............。
903 名前:login:Penguin mailto:sage [2007/03/20(火) 16:56:26 ID:u2b4TE2D] mingwをインストールしなおせ
904 名前:login:Penguin mailto:sage [2007/03/21(水) 03:54:17 ID:Ay+CzKM3] >>872 今更だけど、gtklab.sourceforge.jp/gtkwin/gtkwin10.txt の方法だけど Win ではうまくいかなかった。 なので普通に Win API を使うしかなかった。 >>902 俺は gladewin32.sourceforge.net/modules/news/ の GTK ライブラリ使ってるけど、 問題なかったよ。
905 名前:login:Penguin mailto:sage [2007/03/21(水) 15:08:14 ID:mdl7DVyg] >>897 syntax error near unexpected token `main(' これは実行時ではなくてコンパイル時のエラーメッセージではないのか。
906 名前:login:Penguin mailto:sage [2007/03/21(水) 15:33:43 ID:h4G4UgJx] あのね、ここはLinux板でしてね win32-portのことならム板にスレがあるからそっちに行ってほしいんだ
907 名前:login:Penguin mailto:sage [2007/03/21(水) 15:44:01 ID:OzGdWDRq] >>904 WindowsではWindowsのAPIを使うのが正解かもね。 その文書を書いた人が公開しているプログラムでもそうしてるみたい。 cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/vmaid/vmaid/orz/orzcomm.c?view=markup
908 名前:login:Penguin mailto:sage [2007/03/22(木) 06:20:18 ID:nC3vS/QI] >>906 ム板には無いような気がするなぁ。 マイナーGUITKを「紹介するだけ」のスレはあるようだけど。 見落としてる?
909 名前:login:Penguin mailto:sage [2007/03/22(木) 08:16:50 ID:P6YXu+FN] >>908 GTKやめて、FOX Toolkitで作るといいよ
910 名前:login:Penguin mailto:sage [2007/03/22(木) 11:05:43 ID:nC3vS/QI] >>909 突然、何? なにかが気に障ったなら謝るよ。ゴメンナ。
911 名前:login:Penguin mailto:sage [2007/03/22(木) 17:19:08 ID:NVYlVu8k] >>904 >>906 が言ってるのはここの事では。 Gtkプログラミング on Windows!!! ttp://pc11.2ch.net/test/read.cgi/tech/1147024203/
912 名前:login:Penguin mailto:sage [2007/03/22(木) 18:01:50 ID:oCFS6K5y] >>900 int main(int argc, char *argv[]) を gint main(gint argc,gchar *argv[])に変えてみろ
913 名前:login:Penguin [2007/03/29(木) 16:50:34 ID:dC+/1rKX] GTKのwidgetにMozillaをのっけてアプリケーションを作った人いますか? 不具合とかあったら教えてください!
914 名前:login:Penguin [2007/04/01(日) 02:44:59 ID:RjtNty3y] すいません、質問させてください。文字を90度回転させるにはどうしたらいいですか?
915 名前:login:Penguin mailto:sage [2007/04/03(火) 01:42:21 ID:99UCu54W] ついに、自前の C++ マーシャラーを作成して、シグナルにコネクトできるようになったぜ! こんな感じ。 class Test { public: Test() : dummy(123) { } void hello (GtkWidget *widget, gpointer data); private: int dummy; }; void Test::hello (GtkWidget *widget, gpointer data) { g_print ("Hello World C++ %d\n", dummy); } g_signal_connect_cc (button1, "clicked", &test, &Test::hello, 0); これで、button1をクリックすると、 Hello World C++ 123 と出力される。v(^O^)v 素の GTK+ を使いつつ C++ でプログラム出来るのはかなりおいしい。
916 名前:login:Penguin mailto:sage [2007/04/03(火) 05:09:44 ID:EaZCa4Le] >>914 GTKをインストールした時についてくる gtk-demo で、 Rotated Text というのがあるので、それを見たらいいと思う。 gtk-demoでソースも見れるよ。
917 名前:login:Penguin mailto:sage [2007/04/03(火) 19:04:41 ID:YnFjw9iH] >>915 あ、それよさげ。 全体としてはC++でコーディングしたいけど、GTK+周りは初心者なので 素のCでやりたいと思ってた。gtkmmとか使うのも考えたけど、本家(?)の GTK+の方が情報揃ってそうだったし。
918 名前:915 mailto:sage [2007/04/04(水) 03:16:21 ID:4cUWSG/i] こんな時間になったけど、めげずにカキコ。 GTK+ が他のツールキットと違うのは、コールバック関数を呼び出す際に、 引数をスタックに積まないで、ヒープに型情報と共に保存して、 シグナルに登録されたマーシャラーを呼び出す。 呼び出されたマーシャラーは、データを取り出して、コールバック関数に 合った方法で引数に変換して、コールバック関数を呼び出す。 というところまで分かったんで、だったら、C++ のメソッドを呼び出せる ように出来るんじゃないかと思ったのがきっかけ。 gtkmm を使いたくないのが一番の理由だけどw とりあえず、これからブログを開設するんでwwwそっちに載せるつもり。
919 名前:914 mailto:sage [2007/04/04(水) 20:46:07 ID:fydXVgVP] >>916 情報ありがとうございますm(_;_)m gdkのpangoインターフェースというのがあるんですね。 (でも2.6からみたいなので拙の2.4ではだめかも…)
920 名前:login:Penguin mailto:sage [2007/04/12(木) 18:45:31 ID:AmiOQVwy] textviewについて質問です 表示行数を増やしたときに、その新しい行が見えるように、一番下までスクロールすることにしました。 text_buffer_insertして end_iterにscroll_to_iterしています。 しかし、これを実行しても、最後の行までスクロールされません 最後のカーソルがひとつあるだけの行と、その上の行が見えません(つまり、こちらの意図より2行うえにずれてる) もちろん、スクロールバーも、下がちょびっと残っていて、一番したまでぴったり動きません テキストビューを一番下までスクロールする方法を教えてください