GTK+プログラミング
- 1 :login:Penguin:2007/09/05(水) 13:58:46 ID:2SORZMjm
- GUIツールキットであるGTK+とその周辺技術についてのスレッド
-前スレ-
http://pc11.2ch.net/test/read.cgi/linux/995808691/
-関連サイト-
本家
http://www.gtk.org/
APIレファレンス
http://library.gnome.org/devel/gtk/stable/
gtkmm(C++ラッパー)
http://www.gtkmm.org/
glade
http://glade.gnome.org/
libglade
http://www.jamesh.id.au/software/libglade/
- 30 :login:Penguin:2008/03/21(金) 08:04:49 ID:JTozrZN4
- Linux 上でのGTK+プログラミングの本スレは、ここ?
廃れすぎてるよ。
プログラミング板に行った方がいいのかな?
でも、プログラミング板のは、Windows限定だしな...
- 31 :login:Penguin:2008/03/21(金) 10:35:43 ID:3ULYcj2H
- 本来はム板でやるべきだろうな。
こっちでやりたいなら何か話題振ってみれば?
- 32 :login:Penguin:2008/03/22(土) 21:13:17 ID:AyZW6HyO
- それじゃあ
みなさんの開発環境(IDE)は何を使ってますか?
オレはAnjuta+glade
もっと優れたIDEあるのなら教えてほしい
- 33 :login:Penguin:2008/03/22(土) 21:33:51 ID:ldkQa/0V
- IDEは使っていない。SATAだから。(前半本当)
- 34 :login:Penguin:2008/03/22(土) 21:37:55 ID:AyZW6HyO
- >>33
ハイハイワラタワラタ
それで何をつかってる?
- 35 :login:Penguin:2008/03/22(土) 21:39:06 ID:ldkQa/0V
- だからIDE使ってないってば。javaじゃあるまいし。
- 36 :login:Penguin:2008/03/22(土) 21:59:17 ID:AyZW6HyO
- >>35
吊れますか?
IDE(Integrated Development Environment:統合開発環境)
widestudioとか kylixとか
- 37 :login:Penguin:2008/03/22(土) 22:01:53 ID:aYSHgKNt
- エクリプス、最近ようやくAUTOTOOLSと一緒に使う方法が分かってきた。
ANJUTAのヘルプナビは便利だけど他の部分はCDTのがよいからなあ。
- 38 :login:Penguin:2008/03/22(土) 22:06:40 ID:lxQ3nqhW
- でもちょっと本腰入れて書こうってなったときはIDE使うとかなり便利だよ。
ちなみに俺もanjuta+glade使ってる。
そういえば誰かGtkBuilderを使ってる人とかいる?
俺はまだlibgladeから抜け出せないよ。
- 39 :login:Penguin:2008/03/22(土) 22:08:12 ID:lxQ3nqhW
- >38の一行目は>35宛て
- 40 :login:Penguin:2008/03/22(土) 22:13:46 ID:ldkQa/0V
- >>36
だから釣りじゃなくて使ってないと何度言えば。聞いたから答えただけ。
javaだとIDE使うケースが多いだろ?eclipseとかさ。
make gcc glade ・・・viでconfigure/makefileをゴリゴリだよ。
こんなん好きずきだろ。
- 41 :login:Penguin:2008/03/22(土) 22:19:12 ID:gdnM02dF
- IDE使ってないだけで釣り扱いとは……
- 42 :login:Penguin:2008/03/23(日) 01:33:29 ID:zAd/2L2S
- 俺Ubuntu 7.10使ってるんだけど、パッケージマネージャ(GUI)でインストール
できるバージョンのAnjutaの動作がおかしいので仕方なくgeditのみ。
だれか必要なツールを含めたAnjuta環境の簡単なインストール方法知ってたら
教えてくれまいか。ネットを参考にしてソースから手作業でやろうとしたんだが、
複雑&面倒過ぎで挫折しますたorz
- 43 :login:Penguin:2008/03/23(日) 10:17:18 ID:OBasJEH+
- 私は今は普通にUbuntu7.10でanjuta使えてます。
Ubuntu7.10のベータの頃は確かに挙動がおかしかったので
しょっちゅう落ちまくってましたが。
入れたのは「anjuta」と名のつくパッケージと、wxGtkのdev関係のVer2.8を片っ端から。
ちなみに今はanjutaの新規プロジェクトで選択できるwxWidgetsプロジェクトが一番楽なので
頼り切ってます。
- 44 :login:Penguin:2008/03/23(日) 11:17:19 ID:1HFMv5Qv
- gedit
GNOME端末
ddd
- 45 :login:Penguin:2008/03/23(日) 14:53:17 ID:oxSgYePU
- kylixなんて久しぶりに聞いたな…。
- 46 :login:Penguin:2008/03/23(日) 18:19:48 ID:DWfALAId
- 開発環境の話はこっちで。
開発環境スレ (・∀・)デヴェロォォォップ!!
http://pc11.2ch.net/test/read.cgi/linux/1039282447/
- 47 :login:Penguin:2008/03/24(月) 01:38:53 ID:Qk/VKx6p
- GTK+2の話もここでいいの?
- 48 :login:Penguin:2008/03/24(月) 02:38:12 ID:xdVA6Pwk
- いいんじゃない?
つーかプログラム系のスレはどこも廃れてんだから
あんまりわけることないよ。
ム板でって話もあるが
そもそもLinuxからプログラミングの話抜いたら
インスコの話しかのこらん。
- 49 :login:Penguin:2008/03/24(月) 21:13:51 ID:w0tQmto2
- anjutaをなんとか動かそうとむきになってたけど、自分はgladeが吐いたソースを
ビルドできれば満足なことに気がついた。
gladeでぐぐって出てきたページを参考にやったら簡単にできたorz
- 50 :login:Penguin:2008/03/24(月) 21:16:44 ID:q1u759xh
- 2.13.Xからはgailが統合されるみたいだね。思い切ったことするなぁ
- 51 :login:Penguin:2008/03/25(火) 21:27:24 ID:f22Hmaea
- >49
glade2のソースを吐く機能っていうのは確かに手軽だけど、
吐くソースがobsoloteになってしまうとか、色々と不具合の温床になりそうだから、
glade3での機能廃止もしょうがないと思っちゃうんだよね。
所で、gtk-docで作る文書の国際化って結構めんどいね。
html2poと自作スクリプトで頑張ってみようかなって思ってるけど、
なかなかスマートにいかないや。
- 52 :login:Penguin:2008/03/25(火) 22:04:32 ID:Mm1m5DLO
- >>51
う〜ん、それなんかなかったかなぁ?どっかでみたような。すまん思い出せん。
- 53 :login:Penguin:2008/04/29(火) 19:11:04 ID:26XTARAt
- こんにちは
質問があります、gtkを使ったプログラミングをしたいのですが
コンパイルがうまくいきません
Vine Linuxを使っています。
% rpm -qa | grep gtk+
gtk+-1.2.10-0vl6
となっていますが
% gtk-config
gtk-config: コマンドが見つかりません.
となってしまいます、なぜでしょうか?
- 54 :login:Penguin:2008/04/29(火) 19:17:39 ID:cCcJpKWp
- vineってgtk1しか入ってないの?
deb系はよく知らないけどdevelみたいなのが必要なのかね。
- 55 :login:Penguin:2008/04/30(水) 12:15:31 ID:tQtvI8CE
- Vine が deb 系!?
- 56 :login:Penguin:2008/05/30(金) 13:13:29 ID:kzcW1sj3
- >>53
vineの事は良くわからんけども、
見たところvine4.2では
gtk2-2.8.20-0vl3.2.i386.rpm
gtk2-devel-2.8.20-0vl3.2.i386.rpm
gtk2-engines-2.7.4-0vl1.i386.rpm
があるようなので、
>>53の使ってるvineのver.はわからないが、
開発パッケージが入ってないだけなんじゃないのかね?
例えばgtk+-devel-1.2.10-0vl6.i386.rpmみたいな感じの…。
- 57 :56:2008/05/30(金) 13:16:35 ID:kzcW1sj3
- って日付見たらひと月前の質問か…
てっきり昨日質問したのかと…
- 58 :login:Penguin:2008/05/30(金) 14:22:37 ID:ann5FY58
- はじめまして。
gtkでプログラミングをしているのですが、うまくいきません。
01.jpgから10.jpgまでの数字の画像を使って
クリックしたらカウントダウンさせようと思っています。
現在は、
GtkWidget *drawingarea;
GtkPixbuf *pixbuf;
pixbuf = gdk_pixbuf_new_from_file( "10.jpg", NULL);
gdk_draw_pixbuf( drawingarea->window, NULL, pixbuf,
0, 0, 500, 350, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
gtk_widget_draw( drawingarea, NULL);
sleep( 1);
pixbuf = gdk_pixbuf_new_from_file( "09.jpg", NULL);
gdk_draw_pixbuf( drawingarea->window, NULL, pixbuf,
0, 0, 500, 350, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
gtk_widget_draw( drawingarea, NULL);
sleep( 1);
のようにしていますが、うまく1秒置きに画像が表示されません。
強制的に再描画させる方法などありましたら教えてください。
お願いします。
- 59 :login:Penguin:2008/05/30(金) 14:43:11 ID:GKY/CzaG
- while (gtk_events_pending()) gtk_main_iteration();
を挟むとか。
g_timeout_addを使う方法もあるね。
- 60 :login:Penguin:2008/05/30(金) 15:17:07 ID:ann5FY58
- ありがとうございます。
while (gtk_events_pending()) gtk_main_iteration();
でうまく動きました。
助かりました。
- 61 :login:Penguin:2008/06/01(日) 12:51:26 ID:Qfk/evfC
- 質問ばかりですみません。
スタートをクリックしたらマウスカーソルを10秒間消したいと思っています。
カーソルを透明にしてやればいいと思うのですが、
よくわかりません。
よい方法がありましたら教えてください。
- 62 :login:Penguin:2008/06/01(日) 14:26:49 ID:vBepI6CX
- #!/usr/bin/python
import pygtk
import gtk, gobject
win = gtk.Window()
win.set_default_size(200, 200)
win.connect('destroy', gtk.main_quit)
def create_invisible_cursor():
pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
color = gtk.gdk.Color()
return gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)
def on_clicked(button):
old = win.window.set_cursor(create_invisible_cursor())
def after():
win.window.set_cursor(old)
gobject.timeout_add(10 * 1000, after)
button = gtk.Button('Start')
button.connect('clicked', on_clicked)
win.add(button)
win.show_all()
gtk.main()
- 63 :login:Penguin:2008/06/01(日) 14:46:30 ID:vBepI6CX
- ちょっと修正
#!/usr/bin/python
import pygtk; pygtk.require("2.0")
import gtk, gobject
win = gtk.Window()
win.set_default_size(200, 200)
win.connect('destroy', gtk.main_quit)
def create_invisible_cursor():
pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
color = gtk.gdk.Color()
return gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)
def on_clicked(button):
win.window.set_cursor(create_invisible_cursor())
button.set_sensitive(False)
def after():
win.window.set_cursor(None)
button.set_sensitive(True)
gobject.timeout_add(10 * 1000, after)
button = gtk.Button('Start')
button.connect('clicked', on_clicked)
win.add(button)
win.show_all()
gtk.main()
- 64 :login:Penguin:2008/06/01(日) 15:01:10 ID:Qfk/evfC
- ありがとうございます。
c言語でコーディングしているのでcで書いていただければ。。。
すみませんcしかわからないもので。
GdkCursor cursor;
gchar bits[32] = { 0};
GdkBitmap *bitmap;
GdkColor color = {0, 0, 0, 0};
bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8);
gdk_window_set_cursor(window, cursor);
現在はこれでとりあえずカーソルを消してみようとしたのですが、
assertion 'window != NULL' failedとでてしまって消えない状態です。
- 65 :login:Penguin:2008/06/01(日) 15:32:14 ID:vBepI6CX
- 試してみたらそれでうまく動くようだが。
gdk_window_set_cursor() の呼び出しはちゃんとしてる?
- 66 :login:Penguin:2008/06/01(日) 15:36:53 ID:Qfk/evfC
- ちょっと修正です。
GtkWidget window;
GdkCursor cursor;
gchar bits[32] = { 0};
GdkBitmap *bitmap;
GdkColor color = {0, 0, 0, 0};
bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8);
gdk_window_set_cursor(window->window, cursor);
これで実行すると、
gdk_window_set_cursor:assertion 'window != NULL' failed
と出ているので呼び出しでエラーになっていると思います。
- 67 :login:Penguin:2008/06/01(日) 15:41:29 ID:vBepI6CX
- #include <gtk/gtk.h>
int main(int argc, char *argv[])
{
GtkWidget *window;
GdkCursor *cursor;
GdkBitmap *bitmap;
gchar bits[32] = {0};
GdkColor color = {0, 0, 0, 0};
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL);
gtk_widget_show(window);
bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8);
gdk_window_set_cursor(window->window, cursor);
gtk_main();
return 0;
}
- 68 :login:Penguin:2008/06/01(日) 15:45:23 ID:vBepI6CX
- gtk_widget_realize() 前の widget->window を触ろうとしてるのが原因かな?
- 69 :login:Penguin:2008/06/01(日) 16:04:31 ID:wQKPJ8Cz
- 古いバージョンGtkを使ってたりしない?昔そういうのでハマったおぼえがある
- 70 :login:Penguin:2008/06/01(日) 16:10:28 ID:Qfk/evfC
- 67のようにしたらエラーはでませんけど、カーソルは透明になりません。
windowの上に、水平ボックスや垂直ボックスをパッキングしているから
gdk_window_set_cursor(window->window, cursor);
で消えないとかはありますか?
gtk_widget_realizeについて調べてみます。
gtk-config --version をしたら1.2.10とでてきました。
- 71 :login:Penguin:2008/06/01(日) 16:17:00 ID:Qfk/evfC
- gtk_widget_realizeしても状況変わらずです。
ソースはこうなってます。
int main( int argc, char *argv[])
{
GtkWidget *window; /* メインウインドウ */
GtkWidget *test_window; /* テストウインドウ */
GtkWidget *button_start; /* スタートボタン */
GtkWidget *button_quit; /* 終了ボタン */
GtkWidget *hbox; /* 垂直ボックス */
GtkWidget *vbox; /* 水平ボックス */
GtkWidget *separator; /* セパレーター */
GtkWidget *drawingarea; /* 描画領域 */
GdkPixbuf *pixbuf;
gchar bits[32] = { 0};
GdkBitmap *bitmap;
GdkColor color = {0, 0, 0, 0};
GdkCursor *cursor;
/* 初期化 */
gtk_init( &argc, &argv);
window = gtk_window_new( GTK_WINDOW_TOPLEVEL);
drawingarea = gtk_drawing_area_new();
vbox = gtk_vbox_new( FALSE, 0);
hbox = gtk_hbox_new( FALSE, 0);
button_start = gtk_button_new_with_label( "Start");
button_quit = gtk_button_new_with_label( "Quit");
separator = gtk_hseparator_new();
- 72 :login:Penguin:2008/06/01(日) 16:17:54 ID:Qfk/evfC
- /* ウインドウを画面サイズに合わせる */
gtk_window_resize( GTK_WINDOW( window), gdk_screen_width(), gdk_screen_height());
/* delete_eventが発生したらdelete_eventを実行する */
g_signal_connect( G_OBJECT( window), "delete_event",
G_CALLBACK( delete_event), NULL);
/* 水平ボックスの中にスタートボタンと終了ボタンをパッキング */
gtk_box_pack_start( GTK_BOX(hbox), button_start, TRUE, FALSE, 5);
gtk_widget_show( button_start);
gtk_box_pack_start( GTK_BOX(hbox), button_quit, TRUE, FALSE, 5);
gtk_widget_show( button_quit);
/* 垂直ボックスの中にテストウインドウと水平ボックスをパッキング */
gtk_box_pack_start( GTK_BOX(vbox), drawingarea, TRUE, TRUE, 0);
gtk_widget_show( drawingarea);
gtk_box_pack_start( GTK_BOX(vbox), separator, FALSE, TRUE, 5);
gtk_widget_show( separator);
gtk_box_pack_start( GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show( hbox);
- 73 :login:Penguin:2008/06/01(日) 16:20:38 ID:Qfk/evfC
- /* メインウインドウに垂直ボックスをパッキング */
gtk_container_add( GTK_CONTAINER( window), vbox);
gtk_widget_show_all( window);
bitmap = gdk_bitmap_create_from_data( NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap( bitmap, bitmap, &cursor_color, &cursor_color, 8, 8);
gdk_window_set_cursor( drawingarea->window, cursor);
gtk_main();
return 0;
}
- 74 :login:Penguin:2008/06/01(日) 16:46:47 ID:vBepI6CX
- 2.12.9 だけど、それでちゃんと動くよ
- 75 :login:Penguin:2008/06/01(日) 16:51:52 ID:Qfk/evfC
- ありがとうございます。
バージョンをあげてからやってみます。
- 76 :login:Penguin:2008/06/02(月) 16:55:12 ID:2n4LDSUT
- gtk+プログラミングについてお薦めの本とか出てないのでしょうか?
不勉強で付属のチュートリアルだといまひとつ良くわからなかったもので…。
- 77 :login:Penguin:2008/06/02(月) 17:09:32 ID:vhO0kEsD
- 日本語の本で勧められるようなのはないみたいです。
どっかの大学の先生が書いたPDFが参考になるかもしれません。
http://www.iim.ics.tut.ac.jp/~sugaya/books/GUI-ApplicationProgramming/
個人的にはC言語以外の他の言語バインディングを使うのがおすすめです。
http://www.gtk.org/language-bindings.html
- 78 :76:2008/06/02(月) 18:02:10 ID:2n4LDSUT
- >>77
早速教えていただいてありがとうございます。
参考にして勉強して行きますね。
- 79 :login:Penguin:2008/07/20(日) 20:11:46 ID:hZzIJHG7
- AMD、OpenGL性能を最大33%高速化させたLinux向けドライバ
http://pc.watch.impress.co.jp/docs/2008/0630/amd.htm
24 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
取りに行ったけどなかった。次は一時間後に取りに行くです。新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.3 2008/07/26
FOX ★ DSO(Dynamic Shared Object)