[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/27 01:06 / Filesize : 255 KB / Number-of Response : 921
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

GTK プログラミング!!



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

360 名前:login:Penguin mailto:sage [04/01/27 17:15 ID:hqPkLSFb]
みんな、GObject とか使ってる?
チュートリアルとか読んでみたんだけど、使い方が良く分からん...。


361 名前:login:Penguin [04/01/27 21:34 ID:xBBLI74B]
357 だけど解決した。

psmouse のサンプリングレートと解像度をモジュールのオプションとして
指定したらなおった。

362 名前:login:Penguin mailto:sage [04/01/28 21:57 ID:s3WOXzt9]
windowにfixedを貼り付けました。
windowにexposeシグナルのハンドラをconnectしました。
そのシグナルハンドラに制御が飛んできません。
fixedを除いてだったら渡ってきます。
また、同じハンドラをfixedにconnectすると渡ってきてくれます。

こういうものなのでしょか。
fixed貼ってあっても、あくまでもwindowにシグナル受け取って欲しいものなのですが。


363 名前:login:Penguin mailto:sage [04/01/29 12:38 ID:5f0Q1I1K]
Pangoで文字の重ね打ちがやりたいんですが面倒?

364 名前:login:Penguin mailto:sage [04/01/30 00:14 ID:haUKggm8]
gtk_widget_get_pango_contextとpango_layout_newで
PangoLayoutを取得して
pango_layout_set_textでテキストをセット
gdk_draw_layout_with_colorsでGdkDrawableに描画することができる。

ただしアンチエイリアスされる状態で下手に重ねうちすると
文字がどんどん太りがちになるので注意

(文字をすでに打った上から重ねうちすると、すでに表示されている
文字とさらにアルファブレンディングすることになる。
白地に黒文字を表示する場合、これをくりかえすと重なった部分が
どうしても黒にどんどん近づいてしまう)

365 名前:login:Penguin mailto:sage [04/01/30 01:48 ID:Ribhh1SU]
>>360
素の GObject 使うより、とりあえず gob 使ってみるとか。


366 名前:360 mailto:sage [04/01/30 09:25 ID:xXVlWb2I]
>>365
gob 知らなかった.。・.。・(ノД`).。・.。・ありがとう


367 名前:login:Penguin mailto:sage [04/02/01 02:24 ID:qULg2Z/Y]
>>364
3Q

> ただしアンチエイリアスされる状態で下手に重ねうちすると
> 文字がどんどん太りがちになるので注意

そういえばGimpの文字ツールのプレビュー画面でそういう現象が
発生してるような気が。

368 名前:364 mailto:sage [04/02/01 02:44 ID:PLV4gnHt]
単に色を変えるとかなら確実に(文字を描く前の)
背景を再描画すればよいが
Boldとか、影つきとか出したいのであれば
自分でアルファ値を計算するのが確実かも。

すると描画する前にどこかの(描画エリア以外の)メモリに
文字のアルファ値を取得しなければならず、これがけっこう面倒。
一回(GdkPixmapなどの)Drawableに描画したあと、その値を
gdk_pixbuf_get_from_drawableで配列に取得して計算、なんてやったな。
もっとうまい方法があるのかもしれんが。



369 名前:pao [04/02/02 00:05 ID:lpWaJ20M]
RedHat Linux7.3でgtk1.2を使っているのですが、
drawing areaにconnectしたコールバック関数が呼ばれず困っています。
connectしたイベントは
・キープレス
・ボタンプレス、リリース
・ポインタ移動
です。念の為、イベントマスクも設定しているのですが。
他に、必要な処理があるのでしょうか?
どうしたら、呼ばれる様になるのでしょうか?
よろしくお願いします。


370 名前:login:Penguin mailto:sage [04/02/02 00:37 ID:i0H3LwnL]
gtk のソースにウィジットの使用例が付いてるから見てみたらどう?
初めて使うウィジットの時には結構役にたつぞ。

ついでに、新しくプログラムを組むなら gtk2 のほうがよくないかい?

371 名前:login:Penguin [04/02/02 08:14 ID:X88/BAtu]
質問スレで解答がなかったので質問させて貰います.
gladeでのC++のソースコードの書きだしかたがわかりません。
オプションのコンパイル言語でC++をチェックして、書き出そうとしても
エラーがでます。C++を書き出すにはどうすればよいのですか?

エラーメッセージは
Error running glade-- to generate the C++ source code.
Check that you have glade-- installed and that it is in your PATH.
Then try running 'glade-- <project_file.glade>' in a terminal.
とでてきました。
バージョンはGlade 1.1.3でRedhat9.0をつかっています

glade--をインストールすればいいんでしょうか?
ターミナルでエラーメッセージのコマンドを打つとnot commandでした.
gtk+をC++でコンパイルする方法でも構いませんので,どなたか教えてください

372 名前:login:Penguin mailto:sage [04/02/02 10:53 ID:0Jt2V78i]
エラーメッセージの通りじゃないの?
何に困ってるわけ?
# しかも "not command"って…

373 名前:pao [04/02/03 09:55 ID:GjS2l5dh]
サンプルソース参考にしてみます。
gtk-1.2は、仕事上の制約なんです。

アドバイス、ありがとうございました。

374 名前:pao [04/02/04 18:33 ID:SKoM61X0]
テキストwidgetの文字の余白部分に色を設定したいのですが、
この部分の指定方法がわからず困っています。
とりあえず、以下の様にrcファイルで指定してみたのですが、
ダメでした。
どのwidgetクラス(GtkTextの部分)の何(bg,fgの部分)になるのでしょうか?
ご存知の方、いらっしゃいましたら、教えて下さい。
よろしくお願い致します。

style "text"
{
bg[NORMAL] = { 0, 0, 0 }
fg[NORMAL] = { 0, 0, 0 }
}
widget_class "*GtkText*" style "text"

375 名前:login:Penguin mailto:sage [04/02/05 00:11 ID:6Frv3+5B]
>>357
>ウィンドウからはみ出すような大きな画像をドラッグしてスクロールするように
自分も同じようなものを作ろうと思っていたので
まだこのスレを見ていてもしよければソースを見せてもらえないでしょうか?

376 名前:login:Penguin mailto:sage [04/02/05 00:22 ID:gRe+faI+]
>>375
gqview のソースでも見てみたら?
ちょうどそんな感じの操作方法だと思う。

377 名前:login:Penguin [04/02/05 13:06 ID:SoJ3gS8K]
>>374
style "text"
{
base[NORMAL] = "#000000"
base[ACTIVE] = "#151519"
base[INSENSITIVE] = "#181818"
base[PRELIGHT] = "#151618"
base[SELECTED] = "#252629"
}
class "GtkText" style "text"

378 名前:pao [04/02/05 20:15 ID:I9Rb8I9P]
お陰様で余白の色が設定できました。
ありがとうございました。



379 名前:login:Penguin [04/02/05 21:52 ID:IbsAdnep]
gtk_entry_new_with_max_lengthと
gtk_entry_select_region
を使っているのですが、
GDK-Error X server lost
というエラーがしばしば出るですが、
何かご存知の方、いらっしゃいますか。
RedHat7.2を使用しています。

380 名前:login:Penguin mailto:sage [04/02/06 15:35 ID:sPzuahHm]
風博士作者によるGTK+に関するメモ
kazehakase.sourceforge.jp/cgi-bin/hiki/hiki.cgi?GTK%2B%A4%CB%B4%D8%A4%B9%A4%EB%A5%E1%A5%E2

381 名前:login:Penguin mailto:sage [04/02/06 22:15 ID:zjBuw81z]
pangoのcvs版、modules/indic/myanmar-xが消えとるじゃん。
なんでじゃ(゚д゚)ポルァ

382 名前:login:Penguin mailto:sage [04/02/06 22:25 ID:nS4IRly3]
そら中国に消されたんでしょ

383 名前:login:Penguin mailto:sage [04/02/07 09:06 ID:0FnXzrqf]
>>381

ビルマ(綴り知らね)になってたり?


384 名前:login:Penguin mailto:sage [04/02/07 09:21 ID:LRRhMtVA]
>>383
つづりは Burmese なんだけどやっぱりサポートされて無さげ。(`皿´)キシャー

385 名前:login:Penguin mailto:sage [04/02/07 15:47 ID:/BrXzTXu]
>>381
ChangeLogには目を通した?

386 名前:login:Penguin mailto:sage [04/02/07 17:20 ID:LRRhMtVA]
modules/Attic の中のログだけ見てた。removed/deprecated とそっけなく書かれてた。
ChangeLog 見てみたけど myanmar-x モジュールのことは書いてなかった。
このモジュールが呼び出す主要な関数である pango_x_apply_ligatures() についても
さりげなくあぼーんされてた。(´・ω・`)ショボン

Sat Aug 2 14:10:31 2003 Owen Taylor <otaylor at redhat.com>

* pango/pangox.c (pango_x_apply_ligatures): Make a noop,
remove associated code.

387 名前:login:Penguin mailto:sage [04/02/10 15:04 ID:Ei2GCPJI]
>>386
ああ、思い出した。pangox backend消すって話があったわ。
freetype2+fontconfigを使うように書き直して突っ込めばいいんじゃない?

ttp://mail.gnome.org/archives/gtk-i18n-list/2003-April/msg00020.html

388 名前:login:Penguin [04/02/11 09:40 ID:d5X1Hh57]
age



389 名前:login:Penguin mailto:sage [04/02/16 14:10 ID:qOO4+Jst]
GTK+やる奴はgtkmmから始めときな. OOPはOOPLでやるのが一番.
gtkmmやる奴はRuby/gtkから始めときな.よけいなこと気にしなくていい動的言語が一番.

390 名前:login:Penguin mailto:sage [04/02/16 17:05 ID:iudeGd8p]
>>389
さんせ〜。Redhatだかどこかの誰かが、「Cはライブラリ作るための言語」って言い切ってたっけ。
これからGTK始める人は、どんどん(Cじゃない)高級言語でGTKアプリ作ってって欲しい。

ところで「『よけいなこと気にしなくていい』動的言語」って、変数型のお話?

391 名前:login:Penguin mailto:sage [04/02/16 18:47 ID:juVw0kFu]
>>389 >>390
勉強のつもりでボタン一個だけ貼り付けたウインドウを作った。
シグナルやイベントもなんとなく解った。
v1.2 チュートリアルを見たらウィジェットのボックスやテーブルは書いてあるけど
ボタンを任意の位置に複数貼り付けるのはどうすればよいの?
javaのようにパネルを貼り付けてそのパネルにボタンを配置すればよいの?
gtkmmはGTKのウイジットをクラスとしてラッパーしたものらしいけど、何処にあるの?
rpm -qa | grep gtkでも出てこない
おいらはgtkmmを使いたい
gtkmmの使い方を説明したものはないの?
gtk-tutorial.20021027.tar.gを見るしかないの?

あぁーー   謎だらけ


392 名前:login:Penguin mailto:sage [04/02/16 19:05 ID:oCxJzKi5]
>>391
- 今から始めるなら1.xじゃなくて2.xを使ったほうがいいよ
- 任意の位置への貼り付けはGtkFixedとかGtkLayoutとかそれらの入れ子とか
- あとはgoogle先生に

393 名前:login:Penguin mailto:sage [04/02/16 19:52 ID:juVw0kFu]
google先生はなんて優しいんだ
gtkmm2というrpmみっけ
2.x使って遊んでみる

394 名前:login:Penguin mailto:sage [04/02/16 21:18 ID:juVw0kFu]
インストールしょうとしたら
libsigc-1.2.so.5
libsigc++-devel
が必要といわれ、google先生は教えてくれません
誰か愛の手を差し伸べてください


395 名前:login:Penguin [04/02/16 21:34 ID:juVw0kFu]
解決しました。

396 名前:login:Penguin mailto:sage [04/02/16 22:21 ID:+Ig7jOcp]
>>390
それOwenのセリフ。
その割にはOwenアプリは(KanjiPadとかMemprofとか)Cで書かれて
いるものばっかりだけど(w

まあアプリに関しては自分の好きな言語を使えばいいんじゃない。


397 名前:login:Penguin [04/02/17 11:30 ID:r1qIPww0]
Gtkの button widget の relief 部分の幅を削る方法は
ありませんか?

gtk_container_set_border_width()というのを見つけたのですが
これだと buttonの外側の余白しか変わりません。


398 名前:login:Penguin mailto:sage [04/02/17 21:39 ID:LrLm6Jz+]
使ったことないけど、プロパティにあるreliefって、関係なし?



399 名前:login:Penguin mailto:sage [04/02/17 21:53 ID:1y8cj++7]
(・∀・)relief!!

400 名前:login:Penguin mailto:sage [04/02/17 23:24 ID:ki2m0kcc]
はっとく
www10.plala.or.jp/always/develop/

401 名前:login:Penguin mailto:sage [04/02/17 23:39 ID:YPxA1wly]
>>397
gtk_button_set_relief()は試しました?

402 名前:397 [04/02/18 08:46 ID:0LoZKQD9]
gtk_button_set_relief()は、reliefの形を変えるもので
幅を削ることはできません。
(NORMALでもHALFでもNONEでも relief が同じ幅を占有します)

やっぱこれはできないぽいですねぇ。う〜む。



403 名前:login:Penguin mailto:sage [04/02/18 10:50 ID:p31sw5gF]
GtkButtonのdefault_borderプロパティがREADオンリーなので無理でしょう。
やるならGtkImageかなんかをボタンにするとか。



404 名前:login:Penguin [04/02/21 01:02 ID:iveKWUuZ]
GtkPixmap()で生成したウィジェットをgtk_widget_show()で画像を表示。
その画像の上にgdk_draw_rectangle()で描画した矩形を表示させたいのですが、
どうしても、Pixmapの配下に矩形が表示されてしまいます。
すいません、教えて下さい。

405 名前:login:Penguin [04/02/23 21:50 ID:lo6TfN7B]
どうゆうこと?
もちっと詳しく
できればソースつけて


406 名前:login:Penguin [04/02/23 22:06 ID:wKxG00oc]
スミマセン
藍よりも青し のダンレボゲーム知りませんか?


407 名前:login:Penguin mailto:sage [04/03/01 22:12 ID:w44UF/9x]
どこか、gdk_window_set_back_pixmapをparent_relativeをTRUEで使用した場合の
いいサンプルってありませんでしょうか。
サンプルを書いて使ってみているものの、対象のGdkWindowをclearすると、
真っ黒にしかならなくて困っています。
#一応、parent_relativeがFALSEの時は、あらかじめ作ったGdkPixmapでGdkWindowの
#背景にpixmapを描画してくれるのですが...

#リファレンスを読む限りでは、parent_relativeがTRUEでgdk_window_set_back_pixmapを
#使うと、Etermみたいな(疑似)透過ウィンドウができるって思ったんだけど、違うのかな?


408 名前:login:Penguin mailto:sage [04/03/05 21:04 ID:+LD8Xma7]
チュートリアルに書いてあったプログラムをコンパイルしても、
実行ファイルのサイズは、せいぜい数十kbにしかなりません。
しかし、glade でウィンドウにメニューとテキストだけ貼ったものを、
autogen.sh でコンパイルすると、それぞれの .c に対し 200kb
以上の .o ができて実行ファイルも 500 kb を越えてしまいます。

automake/autoconf がらみでコンパイルオプションが長々としているのが
原因だと思うのですが、このリンクの無駄を省く方法をご存知ないでしょうか?



409 名前:login:Penguin mailto:sage [04/03/05 21:59 ID:3OhPvv7U]
>>408
デバッグオプション外してみたら?
またはstrip -g してみるとか。

ちなみに、チュートリアルのプログラムに-g(デバッグ)オプション付けて
コンパイルするとどれぐらいの大きさになります?
既に付けてたら無視してね。

410 名前:login:Penguin mailto:sage [04/03/05 23:52 ID:+LD8Xma7]
>>409
strip -g で小さくなりました!早速デバッグオプションまわりについて調べてみたいと
思います。

ちなみにチュートリアルの helloworld に -g オプションを付けてみたところ
14533 -> 164785 となりました。


411 名前:login:Penguin mailto:sage [04/03/06 08:47 ID:T+WnXI9F]
>>410
それならmakeはそのままで、インストールするときは
make install-stripでインストールすれば、多分stripされるよ。


412 名前:質問 [04/03/07 00:54 ID:3z3kajPi]
gtkとopneglを併用したアプリを作ろうと思い、gtkglareaに
手を出してみたのですが、ドキュメントがなくて困っています。

gtkglareaはgtkと共存できるglutの代替ライブラリだと思うのですが、
glutとgtkglareaの各関数の対応表みたいなものはどこかのサイトに
あるのでしょうか。

特にすぐ知りたいのはglutTimerFuncです。

413 名前:412 [04/03/07 04:10 ID:3z3kajPi]
一通り.hを読んでみましたが、基本的に初期化についての関数しか用意されていない
みたいですね。


414 名前:login:Penguin mailto:sage [04/03/07 16:22 ID:qODY7BL6]
>>412
Gtk+ 1.2か?Gtk+2以降はGtkGLExtを使うべし。


415 名前:412 [04/03/10 06:04 ID:XpgJ0nF/]
>>414
情報ありがとうございます。

Gtk+2なのでGtkGLExtを使ってみることにします。

gtkglareaでglutTimerFuncの代わりにg_timeout_addを使い
簡単なアニメーションを作るまでやってみたのですが...



416 名前:login:Penguin [04/03/16 21:55 ID:IRXVaMIp]
絵が書いてある GdkPixmap の一部に、別の絵を張り付けようとしてます。
その時、もとの絵が透けて見えるようにしたいのですが、どのようにすれば
いいんでしょう?

gdk_pixbuf_render_to_drawable_alpha なんかが使えるのかと思ったら
alpha_mode : Ignored とか obsolete とか書いてあり、違うようですし・・。

417 名前:login:Penguin [04/03/17 23:13 ID:+5aLOVRA]
gtk+2.4揚げ

418 名前:login:Penguin [04/03/18 10:09 ID:XRV/eX8E]
label1 = gtk_label_new("111111\n22222222\n33333333");
gtk_misc_set_padding(GTK_MISC(label1), 20, 0);
とかすると

111111
22222222
33333333

になるんだけど

11111
2222222
3333333

のように1行目のみpaddingする方法無いですか?
できれば1.2で…




419 名前:login:Penguin mailto:sage [04/03/18 20:39 ID:Jr1qezom]
1つのラベルに複数行書くのはどうかと思うのだが…

420 名前:login:Penguin mailto:sage [04/03/19 09:40 ID:keCgvMYR]
え、まじですか。そういう事だったんですか。しょぼーん。


421 名前:login:Penguin mailto:sage [04/03/19 16:57 ID:iSGoHu86]
>>418

gtk_label_set_justify(GTK_LABEL(label1), GTK_JUSTIFY_RIGHT);

ということ?

422 名前:login:Penguin mailto:sage [04/03/21 08:38 ID:YeGS8vgU]
gtkmm(gtkmmに無ければgtk2, gtk)でデータベースに接続するにはどうすればよいのでしょうか
ドキュメントを見てもそのような物は無さげです。
よろしくです。

423 名前:login:Penguin mailto:sage [04/03/21 09:44 ID:EQKLTR4/]
>>422
データベースへの接続とgtkとは関係ない。

424 名前:login:Penguin mailto:sage [04/03/21 10:06 ID:YeGS8vgU]
考えてみればそうですね
データベース側で提供されているライブラリを使うのですね
PHP見たいな感覚で、もしかしたら用意されているのかなぁ
と思ってしまいました


425 名前:login:Penguin mailto:sage [04/03/21 13:41 ID:jZhqbKqZ]
>>424
スレ違い気味だけど、GNOME-DB Projectでlibgdaというライブラリを
メンテナンスしてるので、それ使うといいかも。ただC++ bindingsは
良さげなものがなさそう。libgdammは古いのしか見当たらないし、
Intiにはまだ入っていないし。

426 名前:login:Penguin mailto:sage [04/03/21 13:53 ID:jZhqbKqZ]
そういえば、IntiのViewCVS見てみたけど、Inti-sourceviewと
Inti-GLが見当たらない(汗


427 名前:login:Penguin mailto:sage [04/03/21 18:08 ID:YeGS8vgU]
>>425
ありがとうございます。
libgda見たけど英語の壁が(T_T)、使い方もわからねぇ
データベース側で提供されているAPI使ってみます。

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行うえにずれてる)
もちろん、スクロールバーも、下がちょびっと残っていて、一番したまでぴったり動きません

テキストビューを一番下までスクロールする方法を教えてください






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<255KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef