1 名前:login:Penguin [2001/07/22(日) 22:31] 俺の様な厨房プログラマーをある程度使えるようにまで育成して、和製糞ソフトを 大量量産するのが目的のスレッドです。 とりあえずGNOMEプログラミング(小学館)を買ってきました。 これから読んでみます。
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]