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


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

GTK+プログラミング



1 名前:login:Penguin [2007/09/05(水) 13:58:46 ID:2SORZMjm]
GUIツールキットであるGTK+とその周辺技術についてのスレッド

-前スレ-
pc11.2ch.net/test/read.cgi/linux/995808691/

-関連サイト-

本家
www.gtk.org/
APIレファレンス
library.gnome.org/devel/gtk/stable/
gtkmm(C++ラッパー)
www.gtkmm.org/
glade
glade.gnome.org/
libglade
www.jamesh.id.au/software/libglade/

35 名前:login:Penguin mailto:sage [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 mailto:sage [2008/03/22(土) 22:01:53 ID:aYSHgKNt]
エクリプス、最近ようやくAUTOTOOLSと一緒に使う方法が分かってきた。
ANJUTAのヘルプナビは便利だけど他の部分はCDTのがよいからなあ。

38 名前:login:Penguin mailto:sage [2008/03/22(土) 22:06:40 ID:lxQ3nqhW]
でもちょっと本腰入れて書こうってなったときはIDE使うとかなり便利だよ。
ちなみに俺もanjuta+glade使ってる。
そういえば誰かGtkBuilderを使ってる人とかいる?
俺はまだlibgladeから抜け出せないよ。

39 名前:login:Penguin mailto:sage [2008/03/22(土) 22:08:12 ID:lxQ3nqhW]
>38の一行目は>35宛て

40 名前:login:Penguin mailto:sage [2008/03/22(土) 22:13:46 ID:ldkQa/0V]
>>36
だから釣りじゃなくて使ってないと何度言えば。聞いたから答えただけ。
javaだとIDE使うケースが多いだろ?eclipseとかさ。

make gcc glade ・・・viでconfigure/makefileをゴリゴリだよ。
こんなん好きずきだろ。

41 名前:login:Penguin mailto:sage [2008/03/22(土) 22:19:12 ID:gdnM02dF]
IDE使ってないだけで釣り扱いとは……

42 名前:login:Penguin mailto:sage [2008/03/23(日) 01:33:29 ID:zAd/2L2S]
俺Ubuntu 7.10使ってるんだけど、パッケージマネージャ(GUI)でインストール
できるバージョンのAnjutaの動作がおかしいので仕方なくgeditのみ。

だれか必要なツールを含めたAnjuta環境の簡単なインストール方法知ってたら
教えてくれまいか。ネットを参考にしてソースから手作業でやろうとしたんだが、
複雑&面倒過ぎで挫折しますたorz

43 名前:login:Penguin mailto:sage [2008/03/23(日) 10:17:18 ID:OBasJEH+]
私は今は普通にUbuntu7.10でanjuta使えてます。
Ubuntu7.10のベータの頃は確かに挙動がおかしかったので
しょっちゅう落ちまくってましたが。

入れたのは「anjuta」と名のつくパッケージと、wxGtkのdev関係のVer2.8を片っ端から。

ちなみに今はanjutaの新規プロジェクトで選択できるwxWidgetsプロジェクトが一番楽なので
頼り切ってます。




44 名前:login:Penguin mailto:sage [2008/03/23(日) 11:17:19 ID:1HFMv5Qv]
gedit
GNOME端末
ddd

45 名前:login:Penguin mailto:sage [2008/03/23(日) 14:53:17 ID:oxSgYePU]
kylixなんて久しぶりに聞いたな…。

46 名前:login:Penguin mailto:sage [2008/03/23(日) 18:19:48 ID:DWfALAId]
開発環境の話はこっちで。

開発環境スレ (・∀・)デヴェロォォォップ!!
pc11.2ch.net/test/read.cgi/linux/1039282447/

47 名前:login:Penguin mailto:sage [2008/03/24(月) 01:38:53 ID:Qk/VKx6p]
GTK+2の話もここでいいの?

48 名前:login:Penguin mailto:sage [2008/03/24(月) 02:38:12 ID:xdVA6Pwk]
いいんじゃない?
つーかプログラム系のスレはどこも廃れてんだから
あんまりわけることないよ。

ム板でって話もあるが
そもそもLinuxからプログラミングの話抜いたら
インスコの話しかのこらん。

49 名前:login:Penguin mailto:sage [2008/03/24(月) 21:13:51 ID:w0tQmto2]
anjutaをなんとか動かそうとむきになってたけど、自分はgladeが吐いたソースを
ビルドできれば満足なことに気がついた。

gladeでぐぐって出てきたページを参考にやったら簡単にできたorz

50 名前:login:Penguin mailto:sage [2008/03/24(月) 21:16:44 ID:q1u759xh]
2.13.Xからはgailが統合されるみたいだね。思い切ったことするなぁ

51 名前:login:Penguin mailto:sage [2008/03/25(火) 21:27:24 ID:f22Hmaea]
>49
glade2のソースを吐く機能っていうのは確かに手軽だけど、
吐くソースがobsoloteになってしまうとか、色々と不具合の温床になりそうだから、
glade3での機能廃止もしょうがないと思っちゃうんだよね。

所で、gtk-docで作る文書の国際化って結構めんどいね。
html2poと自作スクリプトで頑張ってみようかなって思ってるけど、
なかなかスマートにいかないや。

52 名前:login:Penguin mailto:sage [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 mailto:sage [2008/04/29(火) 19:17:39 ID:cCcJpKWp]
vineってgtk1しか入ってないの?
deb系はよく知らないけどdevelみたいなのが必要なのかね。

55 名前:login:Penguin mailto:sage [2008/04/30(水) 12:15:31 ID:tQtvI8CE]
Vine が deb 系!?

56 名前:login:Penguin mailto:sage [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 mailto:sage [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 mailto:sage [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 mailto:sage [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 mailto:sage [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 mailto:sage [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 mailto:sage [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 mailto:sage [2008/06/01(日) 15:45:23 ID:vBepI6CX]
gtk_widget_realize() 前の widget->window を触ろうとしてるのが原因かな?

69 名前:login:Penguin mailto:sage [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 mailto:sage [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 mailto:sage [2008/06/02(月) 16:55:12 ID:2n4LDSUT]
gtk+プログラミングについてお薦めの本とか出てないのでしょうか?
不勉強で付属のチュートリアルだといまひとつ良くわからなかったもので…。

77 名前:login:Penguin mailto:sage [2008/06/02(月) 17:09:32 ID:vhO0kEsD]
日本語の本で勧められるようなのはないみたいです。

どっかの大学の先生が書いたPDFが参考になるかもしれません。
www.iim.ics.tut.ac.jp/~sugaya/books/GUI-ApplicationProgramming/

個人的にはC言語以外の他の言語バインディングを使うのがおすすめです。
www.gtk.org/language-bindings.html

78 名前:76 mailto:sage [2008/06/02(月) 18:02:10 ID:2n4LDSUT]
>>77
早速教えていただいてありがとうございます。
参考にして勉強して行きますね。

79 名前:login:Penguin [2008/07/20(日) 20:11:46 ID:hZzIJHG7]
AMD、OpenGL性能を最大33%高速化させたLinux向けドライバ
pc.watch.impress.co.jp/docs/2008/0630/amd.htm


80 名前:login:Penguin mailto:sage [2008/09/15(月) 23:03:03 ID:EmRnvQ2i]
てs

81 名前:login:Penguin mailto:sage [2008/09/22(月) 21:01:49 ID:8vBcGsdH]
Panedでユーザ操作によるリサイズを禁止することってできますか?

82 名前:login:Penguin mailto:sage [2008/10/18(土) 23:02:28 ID:3BBs8DQQ]
>>77
gtkmmかGtk#辺りが無難なのかなぁ。
GNOME公式のアプリにもC#で書かれたモノが増えてきているようだし。
外国ではPythonで書かれたアプリも沢山あるみたいだけど、
国内だと情報が少なそうだしな。

83 名前:login:Penguin mailto:sage [2008/10/18(土) 23:10:39 ID:QtgieN1g]
どうせ英語は読むことになるからpythonでやるのが無難
GNOMEにはpythonアプリたくさんあるしね



84 名前:login:Penguin mailto:sage [2008/10/18(土) 23:12:21 ID:7K6B6OYK]
Gtk#はないな。gtkmmでしょう。

85 名前:login:Penguin mailto:sage [2008/10/18(土) 23:13:41 ID:HfwrrshF]
Cでシコシコやろうとしてる/やってる俺はどうなんでしょ

86 名前:login:Penguin mailto:sage [2008/10/19(日) 00:01:40 ID:fwxWu968]
とりあえずgtkmm関連の日本語のページを読みながらチマチマと勉強中。
JDのソースとか参考になるかなぁ。

> どうせ英語は読むことになるから
ですよねーorz日本語の情報少ないもんなぁ…

> Gtk#はないな
そうなのか?
Novellが関わってるのがアレだけど、C#は覚えやすいと思うんだが。

>>85
> Cでシコシコ


87 名前:login:Penguin mailto:sage [2008/10/19(日) 00:04:39 ID:f0AiiEyf]
自分で参照カウンタを管理するのはめんどい

88 名前:login:Penguin mailto:sage [2008/10/19(日) 12:37:59 ID:mBsqsk/K]
いっそのことRubyでいこうよ。

89 名前:login:Penguin mailto:sage [2008/10/19(日) 14:31:15 ID:lf2/OYv6]
linuxなら c, gtkmm + python で 鉄板だろ
移植性とかいいだすのが間違いのもと。

まずはc#, javaの排除から。
つーか、そういうのってmsやsunの儲けにしかならんよね、実際。

90 名前:login:Penguin mailto:sage [2008/10/19(日) 18:09:25 ID:ZgmXTrMt]
今、ruby-gtk2を使って簡単な画像ビューワを作っています。
デスクトップにフィットさせて表示(大きい場合は縮小表示)させたいのですが、
パネルとかウインドウマネージャの装飾を考慮して、画像を表示できる最大の
サイズを知りたい場合、どうしたら良さそうですか?
探してはいるものの、なかなか良さそうな手が見つからないです。


91 名前:login:Penguin mailto:sage [2008/10/19(日) 19:54:56 ID:3IMHrYAs]
gtk2hsにトライしたが、一部関数が無くてダメでした。まあこれからか。
erlgtk使いの人とかどう?

92 名前:login:Penguin mailto:sage [2008/10/19(日) 20:28:12 ID:Su20jt3Y]
>>90
ウィンドウを maximize した時にでるシグナルの中でウィンドウ
サイズを取得して、画像のサイズを拡大縮小とか。

これだと、ウィンドウが出てから画像が出るまで、間が空くか?


93 名前:90 mailto:sage [2008/10/20(月) 00:25:14 ID:s5JT3EOQ]
>>92
レスありがとうございます。
やっぱり、そういうちょっと強引な方法しかないんですかね。
せっかく教えてもらったんですが、ちらつきそうなので、できれば避けたいです。
今は、スクリーンサイズを取ってきて適当なサイズで妥協しています。

何かあっても良さそうなのになぁ。。。




94 名前:login:Penguin mailto:sage [2008/10/20(月) 00:34:47 ID:upSqhUNX]
>>93
"expose-event"シグナルかな、rubyであるのかは分からないけど

95 名前:login:Penguin mailto:sage [2008/10/20(月) 02:08:26 ID:RwkYMDWR]
>>90
昔SunのJDKのソースを読んでいたことがあるんだが、当時のJDKの実装では、
1) 使われているwindow managerを特定
2) 有名(あるいは標準的と言うべき)なwindow managerであれば、
  それぞれのwm固有の枠部分の装飾手段(Windowの重なり具合など)
  の知識を基に、今有るウィンドウの親を手繰ってwm由来部分を調査し
  wm由来部分のサイズを決定
3) 知らないwmは非サポートってことで適当に……
なんてことをしていた

ここ数年で提案されてない限り、良い方法はないと思われ

96 名前:login:Penguin mailto:sage [2008/10/20(月) 05:08:18 ID:mB1jem32]
実際にmaximizeするしか知る方法はないだろう?
強引というならそれをやる前に知ろうとする方が強引のような。
それにGTK+はデフォでdouble-bufferedだから何も考えなくてもちらつきしない。

97 名前:login:Penguin mailto:sage [2008/10/20(月) 07:37:12 ID:DDLH0hrK]
>>96
> 実際にmaximizeするしか知る方法はないだろう?
> 強引というならそれをやる前に知ろうとする方が強引のような。

同意。それ以外のやり方してるソフトなんてないのでは?

98 名前:90 mailto:sage [2008/10/20(月) 21:27:41 ID:s5JT3EOQ]
レスありがとうございます。

>>94
ごめんなさい、"expose-event"シグナルはrubyでもあるのですが、94さんの意図が
よく理解できませんでした。

>>95
詳しい情報ありがとうございます。
Sunの人でさえ、そういう実装をされているくらいだから、簡単な方法は無さそうですね。

>>96,97
そんなことを簡単に知ろうという方が間違いですかね。
ちなみに、ちらつくと書いたのは、実際maximizeしてからサイズを取ってくるとすると
画面に表示することは避けられず、一瞬maximizeしたウインドウが見えてしまうという
意味で書きました。
まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
誤解しているかも知れませんが。


99 名前:94 mailto:sage [2008/10/20(月) 23:02:02 ID:upSqhUNX]
>>98
すみません、>>90さんの要求を正しく理解していませんでした。

最大化できるサイズを求めるというのではなくて、あくまでアプリ側で必要な
サイズ(GtkRequisition)と、実際に獲得できたサイズ(GtkAllocation)
で実装するのはいかかでしょうか?

100 名前:login:Penguin mailto:sage [2008/10/21(火) 02:53:13 ID:5A1QOuH6]
>>98
> まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
> 誤解しているかも知れませんが。

どう考えてもこれがガンだろ。呆れた。

101 名前:90 mailto:sage [2008/10/21(火) 23:21:31 ID:rjo5j4+k]
>>99
色々、考えて下さり、ありがとうございます。

>>100
まあ、そう言わんで下さい。

皆さんに教えて頂いたことをヒントに、時間が取れるときに
もっと勉強しようと思います。
レスをしてくれた方々、ありがとうございました。


102 名前:login:Penguin mailto:sage [2008/10/22(水) 01:14:52 ID:1Hw6zT+4]
複数のファイルをユーザーに選択させ、そのファイルのパスをリストなり
配列なりで得たいと考えています。

調べてみたところ GtkFileChooserDialog は単一ファイル|ディレクトリ
にしか対応していないようなのですが、上記のような機能は自前で実装す
るしかないのでしょうか。

103 名前:login:Penguin mailto:sage [2008/10/22(水) 01:40:40 ID:TbaNGOlU]
>>102
gtk_file_chooser_set_select_multiple()
gtk_file_chooser_get_filenames()
の組み合わせじゃ駄目なのかい?



104 名前:login:Penguin mailto:sage [2008/10/22(水) 10:25:49 ID:ApulL45s]
>>103
ありがとうございます。完璧に私の調査不足でした。
教えていただいた方法でいけそうです。



105 名前:login:Penguin mailto:sage [2008/10/25(土) 10:14:11 ID:dTl3thQm]
glade3の最新版にしたらいつの間にかGtkBuilder形式でも出力できるようになってたよ。
さすがにウィンドウ別に分けて出力はしてくれないけど。

106 名前:login:Penguin mailto:sage [2008/10/25(土) 15:02:49 ID:AakIN1gI]
PyGTKでランチャー作ってます
ホットキーから呼び出すにはどうすれば
やはりgconf弄らないと無理なのでしょうか。

107 名前:login:Penguin mailto:sage [2008/10/25(土) 17:13:44 ID:zQTl7fNi]
どのウィンドウがフォーカスされている状態でもキー操作で呼び出したいってこと?
そりゃXならウィンドウマネージャの仕事だ。

108 名前:login:Penguin mailto:sage [2008/10/25(土) 17:58:26 ID:AakIN1gI]
>>107
そうです
どんな操作してるときもホットキーから呼び出したいので
PyGTK以外の言語は全く解らんのですがXLibあたりですかね
これさえ備えられればほぼ完成なんです
ありがとうございました。もう少し調べてみます

109 名前:login:Penguin mailto:sage [2008/10/25(土) 18:06:09 ID:e1TliF6D]
>>108
それ俺も知りたい。分かったら教えてくれ。

110 名前:login:Penguin mailto:sage [2008/10/25(土) 18:20:20 ID:zQTl7fNi]
>>108
ウィンドウマネージャにショートカットで任意のプログラムを呼び出すような
親切機能がついていればできる、なければ基本的にできない。

111 名前:login:Penguin mailto:sage [2008/10/25(土) 21:12:08 ID:UmyLPmdd]
こんなんでどうよ

#!/usr/bin/python
import gtk, gobject
import Xlib, Xlib.display, Xlib.X, Xlib.XK

win = gtk.Window()
win.connect('destroy', gtk.main_quit)
win.show_all()

display = Xlib.display.Display()
root = display.screen().root 
root.grab_key(
        display.keysym_to_keycode(Xlib.XK.XK_a), # keycode
        Xlib.X.ShiftMask | Xlib.X.ControlMask,   # modifier
        True, Xlib.X.GrabModeAsync, Xlib.X.GrabModeAsync)
display.sync()
def check(*args):
    ev = display.next_event()
    if ev.type == Xlib.X.KeyPress:
        print (ev.detail, ev.state) # (keycode, modifier)
        win.present()
    return True
gobject.io_add_watch(display, gobject.IO_IN, check)

gtk.main()

112 名前:login:Penguin mailto:sage [2008/10/26(日) 00:16:49 ID:cuuCZE3q]
>>109-110
自分が得た情報はもちろん共有しますよ
ウインドウマネージャってubuntuだとcompizでしたっけ?
WindowsだとpyHookなんてのがあって楽そうなんですが
>>111
走らせてみました
小さなウインドウは出ましたが、こちらではキーに反応しません
a, <shift>a, <ctrl>aはダメでした。他のキーですか?

個人的にはこの辺が怪しいと思っていたのですが
ttp://faq.pygtk.org/index.py?req=show&file=faq23.009.htp
ttp://manpages.ubuntu.com/manpages/feisty/ja/man3/XGrabButton.html
ttp://xjman.dsl.gr.jp/X11R6/X11/CH12.html

PyGTKって日本語のドキュメントが少ないと思っていたけど
それ以前にドキュメントの絶対数が少ない気がしてきた

113 名前:login:Penguin mailto:sage [2008/10/26(日) 00:20:34 ID:dWWl1VvV]
>112
xbindkeysのソースが参考になるかもね。
でもgdkとgtkだけで済ませたい気もする。



114 名前:login:Penguin mailto:sage [2008/10/26(日) 01:05:43 ID:w1SELDT+]
>>112
<shift><ctrl>aです

115 名前:login:Penguin mailto:sage [2008/10/26(日) 02:08:20 ID:cuuCZE3q]
>>113
これCですか?現時点では意味不明でした。
やはり最低でも2言語くらい習得しないと細かい所が弄れませんね。
>>114
それも試してみましたが何故が無反応でした。
さらに一週間くらい調べてみます。

116 名前:login:Penguin mailto:sage [2008/10/27(月) 22:08:10 ID:hjSX5CJk]
glade3といえば日本語メッセージの翻訳が迷訳てんこもりで参った記憶しかないぞ。
ありゃGTK+プログラミングろくに理解してない奴が訳してるんだろうなあ。

117 名前:login:Penguin mailto:sage [2008/11/02(日) 17:56:33 ID:8LwLmm0R]
出版界を見ると、GTK+よりもQtの方が元気があるように見えるんだけど、
ユーザ数ではどうなんだろう。日本でも最近出てる本はQtのだよね。

118 名前:login:Penguin mailto:sage [2008/11/02(日) 18:07:31 ID:f8W85vrO]
出版ではQtだが、実際にはgtkのほうが人気がある。
ユーザ数でもおそらくgtkのほうが多い。
なぜQtの本のうほうが多いのかは謎。

gtkの本ってなんであんなに少ないんだろうか。

119 名前:login:Penguin mailto:sage [2008/11/03(月) 12:00:13 ID:zVTwcnmi]
一つの指標として
gnome vs kde
ttp://www.google.co.jp/trends?q=GNOME%2CKDE&ctab=0&geo=all&date=all&sort=0
gtk vs qt
ttp://www.google.co.jp/trends?q=gtk%2Cqt&ctab=0&geo=all&date=all&sort=0
ちなみにノルウェーではgnomeの人気が高いw

120 名前:login:Penguin mailto:sage [2008/11/03(月) 12:19:36 ID:f8RoxdRr]
ネット上のドキュメントが充実してるからとか? 洋書も最近のはQtの
が多いよね。

日本GNOMEユーザー会とKDE ホームページ(日本KDEユーザ会)の
サイトを比べてみると、一見KDEの方が勢いがあるように見えるけど、
リンクのメンテがボロボロだな。

121 名前:login:Penguin mailto:sage [2008/11/03(月) 12:24:19 ID:f8RoxdRr]
>>119
なんかKDE/Qtのが優勢な感じw

122 名前:login:Penguin mailto:sage [2008/11/03(月) 13:56:17 ID:7ydUuqhV]
>>119
一部Quicktimeだったりしないか?
www.sophia-it.com/content/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BF%E3%82%A4%E3%83%A0

123 名前:login:Penguin mailto:sage [2008/11/03(月) 22:01:57 ID:57+pbs2m]
Ubuntu人気があるからgnomeのほうがユーザ多そうだけどな、実際どうなんだろな。
あと他言語のバインディングではgtkのほうが優勢な気がするんだがどうなんだろ。
QtHaskellとか使ってる人いる?俺はgtk2hs使ったけど使い物にならなかったよwww必要関数無くてwwww。




124 名前:login:Penguin mailto:sage [2008/11/03(月) 22:39:37 ID:iQkJfTcr]
Ubuntu, Fedora, Debian, Vine(笑)とか標準ではたいがいgnomeだからね。
やっぱシェア(数)はやっぱgnomeが多いんじゃないの?

KDEはOpenSUSE, Mandriva(turbo)とか。
まぁ前出のgnomeトリはたいがいKDEの派生つーかブランチもあるし
入れ替えたって(共存させたって)いいんだけどね。


125 名前:119 mailto:sage [2008/11/03(月) 23:02:36 ID:zVTwcnmi]
>>122
一部ノーム(地名)だったりもするぜ

126 名前:login:Penguin mailto:sage [2008/11/03(月) 23:40:33 ID:CkL33X1G]
ユーザーはともかく、クリエータはGTK(GNOME)の方が多いだろう
GTKがLGPLなのに対して、QtはGPLか最近のtool kit としては高額の
有償ライセンスかのいずれか
利用できる人間は、どうしても限られてくる

127 名前:login:Penguin [2008/12/17(水) 15:27:32 ID:KRTiKwTi]
欲しいソフトがないから自分で作ろうと思う。
だが、どの言語もソースは読める程度、簡単な改造が出来る程度のレベルです。
だが、一からあのソフトを作りたい・・・。

そんな俺はどのようなGTK開発環境が良いとおもいますか?
今考えているのは、
Pygtk + grade の組み合わせです。
これを薦めるハッカーが多いのと、Pythonという言語がしっくりくるからです。

ほか、初心者におすすめのGTK開発環境がありましたら教えて下さい。

128 名前:login:Penguin mailto:sage [2008/12/17(水) 18:01:23 ID:lMmUsPdE]
まあそのへんより簡単なのは無さそうだよね。自分はRubyが好きなので
Rubyで勉強してるけど。

129 名前:vte [2008/12/17(水) 19:59:56 ID:4+kAQRIa]
vte-0.17.4 を ./configure && make && make install してみたのだけど, 画面端で漢字入力を始めると, 折り返しも延長もしてくれず, 入力文字が見えなくなる.

|                              ▽かんじに|

のように. でも次のようになってほしいのだけど,

|                               ▽かんじに|
|ぅりょく                                 |

とか. gtk-demo の text-widget の multiple views などはうまくいってます. .gtkrc-2.0 とかに何か設定が必要でしょうか?


130 名前:login:Penguin mailto:sage [2008/12/22(月) 09:25:07 ID:Z0zqkFax]
>>127
GTKmm

131 名前:login:Penguin mailto:sage [2008/12/23(火) 19:56:34 ID:3l8ZCr+m]
ところでpygtkって遅くね?
Core2Duoのマシンでボタンクリックしてからレスポンスが10秒後とかザラなんだが。
gtkmmとか生のgtkのほうがいいんじゃね?

132 名前:login:Penguin mailto:sage [2008/12/23(火) 20:16:59 ID:LQjeTU8C]
gtkmmは地獄。

133 名前:login:Penguin mailto:sage [2008/12/23(火) 21:14:13 ID:2F34Up+Q]
レスポンスが10秒後ってなんか間違えてるんじゃ



134 名前:login:Penguin mailto:sage [2008/12/23(火) 21:25:44 ID:ae4qT9Yd]
PyGTK + glade3 の日本語チュートリアルのようなものありませんか?
この辺りが翻訳されているのですが、glade3では動きませんでした・・。

po3a.blogspot.com/2006/08/pygtk-glade-gui.html
po3a.blogspot.com/2006/08/pygtk-glade.html

Rubyで勉強したほうが情報多い?

135 名前:134 mailto:sage [2008/12/23(火) 21:34:16 ID:ae4qT9Yd]
こちらのサンプルは PyGTK + glade3 動きました。
ttp://palepoli.skr.jp/content/python/window1.php

でもここから先が進めません。
PyGTK + glade3 で勉強になるサイトがあったら教えて下さい。
英語でもいいです。宜しくお願いします。






[ 続きを読む ] / [ 携帯版 ]

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

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