GTK+プログラミング

このエントリーをはてなブックマークに追加
1login:Penguin
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/
2login:Penguin:2007/09/05(水) 14:09:00 ID:b1/CEVO9
Ruby-GNOME2 Win32 GUI Installer
http://ruby-gnome2.sourceforge.jp/?News_20070212_1
3login:Penguin:2007/09/05(水) 14:16:20 ID:2SORZMjm
4login:Penguin:2007/09/05(水) 14:28:30 ID:bwt0DIPX
>>1
おつ。前のスレは落ちたんだよね。

関連スレ
Gtkプログラミング on Windows!!!
http://pc11.2ch.net/test/read.cgi/tech/1147024203/
5login:Penguin:2007/09/05(水) 22:56:25 ID:cjdtil+H
何か見ないなって思ってたら落ちてたのか。
glade-3.3.4とanjuta-2.2.0の組み合わせで使っている人は、
anjutaのソースの中で
sed -i 's/glade_project_get_has_unsaved_changed/glade_project_get_modified/g' \
plugins/glade/plugin.c
としておかないとgladeファイルが開けないので注意。
6login:Penguin:2007/09/05(水) 23:18:58 ID:6zMwszt6
>>5
使えるな〜と思ったら、gladeの開発版を使っているのですね。
情報Tnx

GNOME-2.20でanjutaが入らないみたいなので残念です。
7login:Penguin:2007/09/06(木) 00:50:05 ID:O0ecg2ks
まあまだ使いにくい所もあるしね。個人的にはもうちょっとScintillaベースの
エディタのフォント設定をもうちょっと楽にしてもらいたかったり。
後GtkBuilderに早い所対応してくれないかな。まあこれはGlade待ちなんだけど。
8login:Penguin:2007/09/06(木) 19:24:35 ID:cMxVF+yM
Gtk関係のヘッダは
gtk-1.2/gtk/hoge とか
gtk-2.0/gtk/hoge にあるのに、
gtk.hを筆頭にgtk/以下のヘッダは全て
gtk/hoge をincludeしてあるのでエラー出まくります。

置換スクリプト作ってgtk/以下のヘッダの
#include<gtk/hoge> を #include<gtk-1.2/gtk/hoge> に
修正しまくるしかないのでしょうか?
何か対処法があれば教えてください。

関係あるか分かりませんが環境はubuntu7.04/Feistyです。
9login:Penguin:2007/09/06(木) 19:44:27 ID:EzCswhTZ
コンパイルオプションに
`gtk+-2.4 pkg-config --cflags --libs`
付け加える
10login:Penguin:2007/09/06(木) 22:14:16 ID:jVEAROlh
>>9
ありがとうございます。
gcc hoge.c `pkg-config --cflags --libs gtk+-2.0` でいけました!
--libsのはpkg-config --list-all の中から選べばいいんですね。凄い。

gladeだと色んなファイルがごちゃごちゃしてるので、
1ファイルでコンパイル出来るのがちょっと感動的です。
11login:Penguin:2007/09/15(土) 18:11:58 ID:l0zyDoAp
GTKのオブジェクトにMozillaを組み込むにはどうすればいいんでしょうか?
12login:Penguin:2007/09/15(土) 22:43:40 ID:NKI8HvUy
昔のGTK1.2で作られている日本語がばけて表示されるソフトを
日本語対応させるのって難しいですか?
13login:Penguin:2007/09/16(日) 00:10:58 ID:gopQQAh6
>>11
gtkmozembed
ってFAQレベルの気が・・・
14login:Penguin:2007/09/16(日) 17:16:00 ID:szZ43l1O
GTKのアイコンってどのファイルに含まれてるのでしょうか?
画像がない時にでる赤い×印のmissingアイコンになるのですが
ファイルがわかれば他のバージョンの高いディストリから
持ってこようと思ってます
15login:Penguin:2007/09/16(日) 18:03:08 ID:nKbLcQMO
>>14
そうゆうプログラムを作るという話?
16login:Penguin:2007/09/16(日) 18:14:10 ID:xPVEAZTR
Qtの方がおもしろいよ!!
17login:Penguin:2007/09/16(日) 20:19:22 ID:Faddvszk
>>14
本当に基本的なアイコンはGTKの中に組み込まれてるけど、
大体その前に/usr/share/icons(pixmaps?)以下にあるアイコンテーマが読み出される。
アイコンテーマについては以下を参照
ttp://tango.freedesktop.org
18login:Penguin:2007/09/17(月) 03:57:01 ID:W3kOm0S+
2.12りりーす
19login:Penguin:2007/09/17(月) 20:46:29 ID:Rov63cpp
>>17
icon-theme入れたら表示されました
どうもです
2011:2007/09/18(火) 09:46:06 ID:7RZGKs31
>>13
ありがとうございます。

gcc でmozembedをLINKするときのoptionってどなたかご存じないでしょうか?
21login:Penguin:2007/09/18(火) 20:28:53 ID:u0v3LdR2
>>20
$ pkg-config --libs firefox-gtkmozembed.pc
でいいんじゃない?
2220:2007/09/19(水) 08:33:16 ID:Sg4DTI1c
>>21
実行して mozillaのobject を gtk_container_add( ) するとエラーを吐いてまだ動作しませんがビルドできるようになりました。
ありがとうございました。
23login:Penguin:2007/09/19(水) 11:09:35 ID:n7MsIjqh
topやnetstatなどの基本的なCUIコマンドをGtkを使ってGUI化したものってないかな?
TreeViewで簡単にsortを掛けることができるような...
なければ自分で造ろうとしているのだけど、既存のものあれば参考にしたい。

TreeViewの各要素にlabelを埋め込んで、このlabelをCUIコマンドで得られる
データーにあわせて変更するような、力づくなコーディングをしてみたんだけど
もっとエレガントな方法はないものか...
24login:Penguin:2007/09/19(水) 23:19:21 ID:HUCusNQ/
qtで充分じゃない?
25login:Penguin:2007/09/19(水) 23:47:15 ID:NIZBsTRK
>>23
topみたいなのだったらgnome-system-monitorとか?
26login:Penguin:2007/09/20(木) 01:24:41 ID:7HBhJoi6
>>25
ありがとう。ソースみてみるわ。普段gnomeじゃないんで盲点でした。

>>24
志村、スレタイスレタイw
Qtスレってあるんかね?
27login:Penguin:2007/09/20(木) 04:29:38 ID:jv4IvgQU
28login:Penguin:2007/09/22(土) 22:29:28 ID:mUDAWFkC
29login:Penguin:2008/03/20(木) 13:39:07 ID:oScjO3eR
Firefox3別にGTK対応しなくてよかったんだがなぁ

統一感出たのはいいが見た目がしょぼい……
30login:Penguin:2008/03/21(金) 08:04:49 ID:JTozrZN4
Linux 上でのGTK+プログラミングの本スレは、ここ?
廃れすぎてるよ。

プログラミング板に行った方がいいのかな?
でも、プログラミング板のは、Windows限定だしな...
31login:Penguin:2008/03/21(金) 10:35:43 ID:3ULYcj2H
本来はム板でやるべきだろうな。
こっちでやりたいなら何か話題振ってみれば?
32login:Penguin:2008/03/22(土) 21:13:17 ID:AyZW6HyO
それじゃあ
みなさんの開発環境(IDE)は何を使ってますか?
オレはAnjuta+glade
もっと優れたIDEあるのなら教えてほしい
33login:Penguin:2008/03/22(土) 21:33:51 ID:ldkQa/0V
IDEは使っていない。SATAだから。(前半本当)
34login:Penguin:2008/03/22(土) 21:37:55 ID:AyZW6HyO
>>33
ハイハイワラタワラタ
それで何をつかってる?
35login:Penguin:2008/03/22(土) 21:39:06 ID:ldkQa/0V
だからIDE使ってないってば。javaじゃあるまいし。
36login:Penguin:2008/03/22(土) 21:59:17 ID:AyZW6HyO
>>35
吊れますか?
IDE(Integrated Development Environment:統合開発環境)

widestudioとか kylixとか
37login:Penguin:2008/03/22(土) 22:01:53 ID:aYSHgKNt
エクリプス、最近ようやくAUTOTOOLSと一緒に使う方法が分かってきた。
ANJUTAのヘルプナビは便利だけど他の部分はCDTのがよいからなあ。
38login:Penguin:2008/03/22(土) 22:06:40 ID:lxQ3nqhW
でもちょっと本腰入れて書こうってなったときはIDE使うとかなり便利だよ。
ちなみに俺もanjuta+glade使ってる。
そういえば誰かGtkBuilderを使ってる人とかいる?
俺はまだlibgladeから抜け出せないよ。
39login:Penguin:2008/03/22(土) 22:08:12 ID:lxQ3nqhW
>38の一行目は>35宛て
40login:Penguin:2008/03/22(土) 22:13:46 ID:ldkQa/0V
>>36
だから釣りじゃなくて使ってないと何度言えば。聞いたから答えただけ。
javaだとIDE使うケースが多いだろ?eclipseとかさ。

make gcc glade ・・・viでconfigure/makefileをゴリゴリだよ。
こんなん好きずきだろ。
41login:Penguin:2008/03/22(土) 22:19:12 ID:gdnM02dF
IDE使ってないだけで釣り扱いとは……
42login:Penguin:2008/03/23(日) 01:33:29 ID:zAd/2L2S
俺Ubuntu 7.10使ってるんだけど、パッケージマネージャ(GUI)でインストール
できるバージョンのAnjutaの動作がおかしいので仕方なくgeditのみ。

だれか必要なツールを含めたAnjuta環境の簡単なインストール方法知ってたら
教えてくれまいか。ネットを参考にしてソースから手作業でやろうとしたんだが、
複雑&面倒過ぎで挫折しますたorz
43login:Penguin:2008/03/23(日) 10:17:18 ID:OBasJEH+
私は今は普通にUbuntu7.10でanjuta使えてます。
Ubuntu7.10のベータの頃は確かに挙動がおかしかったので
しょっちゅう落ちまくってましたが。

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

ちなみに今はanjutaの新規プロジェクトで選択できるwxWidgetsプロジェクトが一番楽なので
頼り切ってます。
44login:Penguin:2008/03/23(日) 11:17:19 ID:1HFMv5Qv
gedit
GNOME端末
ddd
45login:Penguin:2008/03/23(日) 14:53:17 ID:oxSgYePU
kylixなんて久しぶりに聞いたな…。
46login:Penguin:2008/03/23(日) 18:19:48 ID:DWfALAId
開発環境の話はこっちで。

開発環境スレ (・∀・)デヴェロォォォップ!!
http://pc11.2ch.net/test/read.cgi/linux/1039282447/
47login:Penguin:2008/03/24(月) 01:38:53 ID:Qk/VKx6p
GTK+2の話もここでいいの?
48login:Penguin:2008/03/24(月) 02:38:12 ID:xdVA6Pwk
いいんじゃない?
つーかプログラム系のスレはどこも廃れてんだから
あんまりわけることないよ。

ム板でって話もあるが
そもそもLinuxからプログラミングの話抜いたら
インスコの話しかのこらん。
49login:Penguin:2008/03/24(月) 21:13:51 ID:w0tQmto2
anjutaをなんとか動かそうとむきになってたけど、自分はgladeが吐いたソースを
ビルドできれば満足なことに気がついた。

gladeでぐぐって出てきたページを参考にやったら簡単にできたorz
50login:Penguin:2008/03/24(月) 21:16:44 ID:q1u759xh
2.13.Xからはgailが統合されるみたいだね。思い切ったことするなぁ
51login:Penguin:2008/03/25(火) 21:27:24 ID:f22Hmaea
>49
glade2のソースを吐く機能っていうのは確かに手軽だけど、
吐くソースがobsoloteになってしまうとか、色々と不具合の温床になりそうだから、
glade3での機能廃止もしょうがないと思っちゃうんだよね。

所で、gtk-docで作る文書の国際化って結構めんどいね。
html2poと自作スクリプトで頑張ってみようかなって思ってるけど、
なかなかスマートにいかないや。
52login:Penguin:2008/03/25(火) 22:04:32 ID:Mm1m5DLO
>>51
う〜ん、それなんかなかったかなぁ?どっかでみたような。すまん思い出せん。
53login: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: コマンドが見つかりません.
となってしまいます、なぜでしょうか?
54login:Penguin:2008/04/29(火) 19:17:39 ID:cCcJpKWp
vineってgtk1しか入ってないの?
deb系はよく知らないけどdevelみたいなのが必要なのかね。
55login:Penguin:2008/04/30(水) 12:15:31 ID:tQtvI8CE
Vine が deb 系!?
56login: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みたいな感じの…。
5756:2008/05/30(金) 13:16:35 ID:kzcW1sj3
って日付見たらひと月前の質問か…
てっきり昨日質問したのかと…
58login: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秒置きに画像が表示されません。
強制的に再描画させる方法などありましたら教えてください。
お願いします。
59login:Penguin:2008/05/30(金) 14:43:11 ID:GKY/CzaG
while (gtk_events_pending()) gtk_main_iteration();
を挟むとか。

g_timeout_addを使う方法もあるね。
60login:Penguin:2008/05/30(金) 15:17:07 ID:ann5FY58
ありがとうございます。
while (gtk_events_pending()) gtk_main_iteration();
でうまく動きました。
助かりました。
61login:Penguin:2008/06/01(日) 12:51:26 ID:Qfk/evfC
質問ばかりですみません。
スタートをクリックしたらマウスカーソルを10秒間消したいと思っています。
カーソルを透明にしてやればいいと思うのですが、
よくわかりません。
よい方法がありましたら教えてください。
62login: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()
63login: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()
64login: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とでてしまって消えない状態です。
65login:Penguin:2008/06/01(日) 15:32:14 ID:vBepI6CX
試してみたらそれでうまく動くようだが。
gdk_window_set_cursor() の呼び出しはちゃんとしてる?
66login: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
と出ているので呼び出しでエラーになっていると思います。
67login: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;
}
68login:Penguin:2008/06/01(日) 15:45:23 ID:vBepI6CX
gtk_widget_realize() 前の widget->window を触ろうとしてるのが原因かな?
69login:Penguin:2008/06/01(日) 16:04:31 ID:wQKPJ8Cz
古いバージョンGtkを使ってたりしない?昔そういうのでハマったおぼえがある
70login: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とでてきました。
71login: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();

72login: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);
73login: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;
}
74login:Penguin:2008/06/01(日) 16:46:47 ID:vBepI6CX
2.12.9 だけど、それでちゃんと動くよ
75login:Penguin:2008/06/01(日) 16:51:52 ID:Qfk/evfC
ありがとうございます。
バージョンをあげてからやってみます。
76login:Penguin:2008/06/02(月) 16:55:12 ID:2n4LDSUT
gtk+プログラミングについてお薦めの本とか出てないのでしょうか?
不勉強で付属のチュートリアルだといまひとつ良くわからなかったもので…。
77login: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
7876:2008/06/02(月) 18:02:10 ID:2n4LDSUT
>>77
早速教えていただいてありがとうございます。
参考にして勉強して行きますね。
79login:Penguin:2008/07/20(日) 20:11:46 ID:hZzIJHG7
AMD、OpenGL性能を最大33%高速化させたLinux向けドライバ
http://pc.watch.impress.co.jp/docs/2008/0630/amd.htm
80login:Penguin:2008/09/15(月) 23:03:03 ID:EmRnvQ2i
てs
81login:Penguin:2008/09/22(月) 21:01:49 ID:8vBcGsdH
Panedでユーザ操作によるリサイズを禁止することってできますか?
82login:Penguin:2008/10/18(土) 23:02:28 ID:3BBs8DQQ
>>77
gtkmmかGtk#辺りが無難なのかなぁ。
GNOME公式のアプリにもC#で書かれたモノが増えてきているようだし。
外国ではPythonで書かれたアプリも沢山あるみたいだけど、
国内だと情報が少なそうだしな。
83login:Penguin:2008/10/18(土) 23:10:39 ID:QtgieN1g
どうせ英語は読むことになるからpythonでやるのが無難
GNOMEにはpythonアプリたくさんあるしね
84login:Penguin:2008/10/18(土) 23:12:21 ID:7K6B6OYK
Gtk#はないな。gtkmmでしょう。
85login:Penguin:2008/10/18(土) 23:13:41 ID:HfwrrshF
Cでシコシコやろうとしてる/やってる俺はどうなんでしょ
86login:Penguin:2008/10/19(日) 00:01:40 ID:fwxWu968
とりあえずgtkmm関連の日本語のページを読みながらチマチマと勉強中。
JDのソースとか参考になるかなぁ。

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

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

>>85
> Cでシコシコ
87login:Penguin:2008/10/19(日) 00:04:39 ID:f0AiiEyf
自分で参照カウンタを管理するのはめんどい
88login:Penguin:2008/10/19(日) 12:37:59 ID:mBsqsk/K
いっそのことRubyでいこうよ。
89login:Penguin:2008/10/19(日) 14:31:15 ID:lf2/OYv6
linuxなら c, gtkmm + python で 鉄板だろ
移植性とかいいだすのが間違いのもと。

まずはc#, javaの排除から。
つーか、そういうのってmsやsunの儲けにしかならんよね、実際。
90login:Penguin:2008/10/19(日) 18:09:25 ID:ZgmXTrMt
今、ruby-gtk2を使って簡単な画像ビューワを作っています。
デスクトップにフィットさせて表示(大きい場合は縮小表示)させたいのですが、
パネルとかウインドウマネージャの装飾を考慮して、画像を表示できる最大の
サイズを知りたい場合、どうしたら良さそうですか?
探してはいるものの、なかなか良さそうな手が見つからないです。
91login:Penguin:2008/10/19(日) 19:54:56 ID:3IMHrYAs
gtk2hsにトライしたが、一部関数が無くてダメでした。まあこれからか。
erlgtk使いの人とかどう?
92login:Penguin:2008/10/19(日) 20:28:12 ID:Su20jt3Y
>>90
ウィンドウを maximize した時にでるシグナルの中でウィンドウ
サイズを取得して、画像のサイズを拡大縮小とか。

これだと、ウィンドウが出てから画像が出るまで、間が空くか?
9390:2008/10/20(月) 00:25:14 ID:s5JT3EOQ
>>92
レスありがとうございます。
やっぱり、そういうちょっと強引な方法しかないんですかね。
せっかく教えてもらったんですが、ちらつきそうなので、できれば避けたいです。
今は、スクリーンサイズを取ってきて適当なサイズで妥協しています。

何かあっても良さそうなのになぁ。。。
94login:Penguin:2008/10/20(月) 00:34:47 ID:upSqhUNX
>>93
"expose-event"シグナルかな、rubyであるのかは分からないけど
95login:Penguin:2008/10/20(月) 02:08:26 ID:RwkYMDWR
>>90
昔SunのJDKのソースを読んでいたことがあるんだが、当時のJDKの実装では、
1) 使われているwindow managerを特定
2) 有名(あるいは標準的と言うべき)なwindow managerであれば、
  それぞれのwm固有の枠部分の装飾手段(Windowの重なり具合など)
  の知識を基に、今有るウィンドウの親を手繰ってwm由来部分を調査し
  wm由来部分のサイズを決定
3) 知らないwmは非サポートってことで適当に……
なんてことをしていた

ここ数年で提案されてない限り、良い方法はないと思われ
96login:Penguin:2008/10/20(月) 05:08:18 ID:mB1jem32
実際にmaximizeするしか知る方法はないだろう?
強引というならそれをやる前に知ろうとする方が強引のような。
それにGTK+はデフォでdouble-bufferedだから何も考えなくてもちらつきしない。
97login:Penguin:2008/10/20(月) 07:37:12 ID:DDLH0hrK
>>96
> 実際にmaximizeするしか知る方法はないだろう?
> 強引というならそれをやる前に知ろうとする方が強引のような。

同意。それ以外のやり方してるソフトなんてないのでは?
9890:2008/10/20(月) 21:27:41 ID:s5JT3EOQ
レスありがとうございます。

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

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

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

最大化できるサイズを求めるというのではなくて、あくまでアプリ側で必要な
サイズ(GtkRequisition)と、実際に獲得できたサイズ(GtkAllocation)
で実装するのはいかかでしょうか?
100login:Penguin:2008/10/21(火) 02:53:13 ID:5A1QOuH6
>>98
> まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
> 誤解しているかも知れませんが。

どう考えてもこれがガンだろ。呆れた。
10190:2008/10/21(火) 23:21:31 ID:rjo5j4+k
>>99
色々、考えて下さり、ありがとうございます。

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

皆さんに教えて頂いたことをヒントに、時間が取れるときに
もっと勉強しようと思います。
レスをしてくれた方々、ありがとうございました。
102login:Penguin:2008/10/22(水) 01:14:52 ID:1Hw6zT+4
複数のファイルをユーザーに選択させ、そのファイルのパスをリストなり
配列なりで得たいと考えています。

調べてみたところ GtkFileChooserDialog は単一ファイル|ディレクトリ
にしか対応していないようなのですが、上記のような機能は自前で実装す
るしかないのでしょうか。
103login:Penguin:2008/10/22(水) 01:40:40 ID:TbaNGOlU
>>102
gtk_file_chooser_set_select_multiple()
gtk_file_chooser_get_filenames()
の組み合わせじゃ駄目なのかい?
104login:Penguin:2008/10/22(水) 10:25:49 ID:ApulL45s
>>103
ありがとうございます。完璧に私の調査不足でした。
教えていただいた方法でいけそうです。

105login:Penguin:2008/10/25(土) 10:14:11 ID:dTl3thQm
glade3の最新版にしたらいつの間にかGtkBuilder形式でも出力できるようになってたよ。
さすがにウィンドウ別に分けて出力はしてくれないけど。
106login:Penguin:2008/10/25(土) 15:02:49 ID:AakIN1gI
PyGTKでランチャー作ってます
ホットキーから呼び出すにはどうすれば
やはりgconf弄らないと無理なのでしょうか。
107login:Penguin:2008/10/25(土) 17:13:44 ID:zQTl7fNi
どのウィンドウがフォーカスされている状態でもキー操作で呼び出したいってこと?
そりゃXならウィンドウマネージャの仕事だ。
108login:Penguin:2008/10/25(土) 17:58:26 ID:AakIN1gI
>>107
そうです
どんな操作してるときもホットキーから呼び出したいので
PyGTK以外の言語は全く解らんのですがXLibあたりですかね
これさえ備えられればほぼ完成なんです
ありがとうございました。もう少し調べてみます
109login:Penguin:2008/10/25(土) 18:06:09 ID:e1TliF6D
>>108
それ俺も知りたい。分かったら教えてくれ。
110login:Penguin:2008/10/25(土) 18:20:20 ID:zQTl7fNi
>>108
ウィンドウマネージャにショートカットで任意のプログラムを呼び出すような
親切機能がついていればできる、なければ基本的にできない。
111login:Penguin: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()
112login:Penguin: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って日本語のドキュメントが少ないと思っていたけど
それ以前にドキュメントの絶対数が少ない気がしてきた
113login:Penguin:2008/10/26(日) 00:20:34 ID:dWWl1VvV
>112
xbindkeysのソースが参考になるかもね。
でもgdkとgtkだけで済ませたい気もする。
114login:Penguin:2008/10/26(日) 01:05:43 ID:w1SELDT+
>>112
<shift><ctrl>aです
115login:Penguin:2008/10/26(日) 02:08:20 ID:cuuCZE3q
>>113
これCですか?現時点では意味不明でした。
やはり最低でも2言語くらい習得しないと細かい所が弄れませんね。
>>114
それも試してみましたが何故が無反応でした。
さらに一週間くらい調べてみます。
116login:Penguin:2008/10/27(月) 22:08:10 ID:hjSX5CJk
glade3といえば日本語メッセージの翻訳が迷訳てんこもりで参った記憶しかないぞ。
ありゃGTK+プログラミングろくに理解してない奴が訳してるんだろうなあ。
117login:Penguin:2008/11/02(日) 17:56:33 ID:8LwLmm0R
出版界を見ると、GTK+よりもQtの方が元気があるように見えるんだけど、
ユーザ数ではどうなんだろう。日本でも最近出てる本はQtのだよね。
118login:Penguin:2008/11/02(日) 18:07:31 ID:f8W85vrO
出版ではQtだが、実際にはgtkのほうが人気がある。
ユーザ数でもおそらくgtkのほうが多い。
なぜQtの本のうほうが多いのかは謎。

gtkの本ってなんであんなに少ないんだろうか。
119login:Penguin: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
120login:Penguin:2008/11/03(月) 12:19:36 ID:f8RoxdRr
ネット上のドキュメントが充実してるからとか? 洋書も最近のはQtの
が多いよね。

日本GNOMEユーザー会とKDE ホームページ(日本KDEユーザ会)の
サイトを比べてみると、一見KDEの方が勢いがあるように見えるけど、
リンクのメンテがボロボロだな。
121login:Penguin:2008/11/03(月) 12:24:19 ID:f8RoxdRr
>>119
なんかKDE/Qtのが優勢な感じw
122login:Penguin:2008/11/03(月) 13:56:17 ID:7ydUuqhV
123login:Penguin:2008/11/03(月) 22:01:57 ID:57+pbs2m
Ubuntu人気があるからgnomeのほうがユーザ多そうだけどな、実際どうなんだろな。
あと他言語のバインディングではgtkのほうが優勢な気がするんだがどうなんだろ。
QtHaskellとか使ってる人いる?俺はgtk2hs使ったけど使い物にならなかったよwww必要関数無くてwwww。
124login:Penguin:2008/11/03(月) 22:39:37 ID:iQkJfTcr
Ubuntu, Fedora, Debian, Vine(笑)とか標準ではたいがいgnomeだからね。
やっぱシェア(数)はやっぱgnomeが多いんじゃないの?

KDEはOpenSUSE, Mandriva(turbo)とか。
まぁ前出のgnomeトリはたいがいKDEの派生つーかブランチもあるし
入れ替えたって(共存させたって)いいんだけどね。
125119:2008/11/03(月) 23:02:36 ID:zVTwcnmi
>>122
一部ノーム(地名)だったりもするぜ
126login:Penguin:2008/11/03(月) 23:40:33 ID:CkL33X1G
ユーザーはともかく、クリエータはGTK(GNOME)の方が多いだろう
GTKがLGPLなのに対して、QtはGPLか最近のtool kit としては高額の
有償ライセンスかのいずれか
利用できる人間は、どうしても限られてくる
127login:Penguin:2008/12/17(水) 15:27:32 ID:KRTiKwTi
欲しいソフトがないから自分で作ろうと思う。
だが、どの言語もソースは読める程度、簡単な改造が出来る程度のレベルです。
だが、一からあのソフトを作りたい・・・。

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

ほか、初心者におすすめのGTK開発環境がありましたら教えて下さい。
128login:Penguin:2008/12/17(水) 18:01:23 ID:lMmUsPdE
まあそのへんより簡単なのは無さそうだよね。自分はRubyが好きなので
Rubyで勉強してるけど。
129vte: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 とかに何か設定が必要でしょうか?
130login:Penguin:2008/12/22(月) 09:25:07 ID:Z0zqkFax
>>127
GTKmm
131login:Penguin:2008/12/23(火) 19:56:34 ID:3l8ZCr+m
ところでpygtkって遅くね?
Core2Duoのマシンでボタンクリックしてからレスポンスが10秒後とかザラなんだが。
gtkmmとか生のgtkのほうがいいんじゃね?
132login:Penguin:2008/12/23(火) 20:16:59 ID:LQjeTU8C
gtkmmは地獄。
133login:Penguin:2008/12/23(火) 21:14:13 ID:2F34Up+Q
レスポンスが10秒後ってなんか間違えてるんじゃ
134login:Penguin:2008/12/23(火) 21:25:44 ID:ae4qT9Yd
PyGTK + glade3 の日本語チュートリアルのようなものありませんか?
この辺りが翻訳されているのですが、glade3では動きませんでした・・。

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

Rubyで勉強したほうが情報多い?
135134:2008/12/23(火) 21:34:16 ID:ae4qT9Yd
こちらのサンプルは PyGTK + glade3 動きました。
ttp://palepoli.skr.jp/content/python/window1.php

でもここから先が進めません。
PyGTK + glade3 で勉強になるサイトがあったら教えて下さい。
英語でもいいです。宜しくお願いします。
136login:Penguin:2008/12/24(水) 06:59:19 ID:aQCa49jr
pygtkのことは知らないんでよくわからないけど、これとかは?
http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html
これでだめなら、ウェブ全体からググれ。

ちなみにruby用の日本語チュートリアルはglade2使用。
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?libglade2-tut
137134:2008/12/24(水) 09:50:41 ID:hiOOXDc5
>>136
ありがとうございます。
参考になりました。
138login:Penguin:2008/12/24(水) 11:47:11 ID:j0KWvBZ+
C++/GTKで書いたプログラムを
wxPythonで書き直したら
wxPythonで作った方がサクサク速く動いた orz
139login:Penguin:2008/12/24(水) 14:47:02 ID:gkyqeyAR
windows上か?
140login:Penguin:2008/12/24(水) 15:36:14 ID:EbVd5uRZ
PHP-GTKってどうよ?
141login:Penguin:2008/12/26(金) 04:24:16 ID:0/dGPTTl
そんなのあるのか。今度試してみよう。
142login:Penguin:2008/12/26(金) 23:23:17 ID:Z/96o+8l
いまさらかもしれないが時代は今CAIROだということに気づいた

http://journal.mycom.co.jp/series/firefox/005/

プラットフォームやハードウェアに依存せず精密な描画が可能になるらしい

CAIRO使えるのはGTK+2.10から上のver
誰か使ってる人いる?
143login:Penguin:2008/12/27(土) 00:05:03 ID:7rBKxqYP
時代を読み違えてるな。
ベクトルベースとか3DデスクトップとかVistaとともに沈んだよ。
PC肥大化狂騒曲は終わりだ。Qt4も総スカンだし
144login:Penguin:2008/12/27(土) 06:06:34 ID:B/jsjdnT
いやでも実際有名どころで使われてるわけだし

それに素のGTKのみで描画するより処理速度は速くなるし,
プラットフォーム間の互換性も高まると思う

別に肥大化してるわけじゃないしVistaや3Dデスクトップとはちょっと違うだろう

gtkがcairoをサポートしてまだ日も浅いしむしろ今からが勝負
145login:Penguin:2008/12/27(土) 12:41:23 ID:6Qaozst9
ふつーに使ってる。フォントの取り扱いがプラットフォーム中立にできればなおいいのだが。
146login:Penguin:2008/12/27(土) 13:12:28 ID:IS4Ugvd/
Cairo のフォント描画は Windows 上だとジャギが目立つ。Linux 上では問題無し。
何か設定がいるのかしら。
147login:Penguin:2008/12/27(土) 20:23:11 ID:B/jsjdnT
普通ベクトル・グラフィクスにジャギーは発生しない

なにか間違ってることは間違いない
148login:Penguin:2008/12/27(土) 20:43:22 ID:6XGFKeOe
>>144
速くなるって、なんかベンチの結果でもあんの?
skiaを用いているgoogle chromeのcanvasが爆速という話なら聞いたことがあるが

>>146
普通にcairoをコンパイルすると、Windowsではcairo-win32-font.cが使われる
これは普通にGDIを用いているので、普通のWindowsアプリのフォントの
レンダリングと全く同じ結果になる
一方LinuxではFreeTypeが使われる
149login:Penguin:2008/12/27(土) 21:26:06 ID:mPWXe8Aq
a
150login:Penguin:2008/12/27(土) 22:20:00 ID:B/jsjdnT
>>148
firefox2とfirefox3の速度比較は
確証を裏づけるものにはならないか?

一般的にラスター描画よりベクトル描画の方がデータ数が少なく、描画速度は速いと言われているし


ところでskiaて何?
151login:Penguin:2008/12/28(日) 10:40:10 ID:xJesvUS3
mexo
hanaxo
152login:Penguin:2008/12/28(日) 11:37:59 ID:5NoVhFnO
>>145-146
フォント描画にはPangoを使えばいいんじゃないの?
153login:Penguin:2008/12/29(月) 18:19:47 ID:qsmFI5vI
>>150
ttp://www.hyuki.com/yukiwiki/wiki.cgi?VectorDrawing

skiaは
google chrome skia
あたりでぐぐれ
154login:Penguin:2008/12/29(月) 22:41:52 ID:mdZmAujL
>>153
これはハードウェア実装のOpenGLによるベクタ描画と
ソフトウェア実装のcairoによるベクタ描画の実験結果だな...

ハードウェア実装だとプラットフォームやハードウェア環境の影響を受けるが
ソフトウェア実装より格段に速度を上げられる

だからこそcairoにもOpenGLによるハードウェアアクセラレーションのサポートがあるわけだが...

でもビデオカードやらのGPU性能依存というのは
それこそ3DデスクトップやらVistaやらのPC肥大化狂騒曲じゃないのか?

ハードウェア実装を否定してるわけじゃないが
これはアリなの?
そこのところどうなんよ?
155login:Penguin:2008/12/29(月) 23:04:54 ID:qsmFI5vI
>>154
んー
それを言うなら、GDIだってハードウェアアクセラレートされていて、
GDIがソフトウェアでエミュレートされるようになったWindows Vistaでは
実際描画が遅いのなんのと騒ぎになっていたわけだろ

cairoは、下のレイヤの上に乗っかって、アンチエイリアス描画を行うから、
一般的には下のプリミティブをそのまま用いるのではなく、
pixmapの上にソフトウェアレンダリングを行う形になる
だから結果は綺麗だが、それが高速化につながるという意見はさっぱりわからんね

皮をかぶせれば、ポータビリティは高まるかもしれんが、速くなるわけがないよ

個人的にちょっと試した限りでは、少なくともWindowsで普通にコンパイルした
cairoは、遅いといわれるGDI+よりもまだ遅いぐらいだ
同種の競合ソフトのaggと比べても、やはり遅いな
156login:Penguin:2008/12/30(火) 02:24:04 ID:chmi7ht1
cairoの下のレイヤって何?
cairoはGTK+/GDKやXlibの上にはない
そもそもpixmapのようなラスタデータ上にベクタデータを
ラスタライズしても綺麗な結果にはならない


Vistaが重い一番の理由はVistaのコアが4Gとかのせいじゃなかったか?
157login:Penguin:2008/12/30(火) 03:17:23 ID:xp1VmVKW
>>156
> cairoの下のレイヤって何?
> cairoはGTK+/GDKやXlibの上にはない

????
cairoは何らかのバックエンド(サーフェス)の上で描画を行うわけだが
一体何を言ってるんだ

> そもそもpixmapのようなラスタデータ上にベクタデータを
> ラスタライズしても綺麗な結果にはならない

ビットマップディスプレイに、ラスタデータ以外をどうやって描画するんだ?
ベクタグラフィックスだろうが3Dだろうが、ビットマップディスプレイに
描画するときは、*必ず*2Dラスタデータに落とす(=レンダリング)
しなければ、描画のしようがないのだが、そんなことも知らないのか?

レンダリングをソフトウェアで行うか、ハードウェアで行うかは
実装の問題だがな
158login:Penguin:2008/12/30(火) 03:38:55 ID:F99IYk+S
他の領域に落としたらそれが遅くなる原因だしな。
絵の処理なら、cpuから見えるメモリ領域のビットマップに転送が遅くなる原因のno1。
cairoは、その辺がすべてバックエンド任せでさらにメモリ上でいじるので、
普通に使うと遅いソフト(cpu)処理の部類に分類される。

てか、cairoの中身でも描画なんかは一切触れずに、cairo_surface_tで共通化とでしか使ってないと思うんだけどどう?
159login:Penguin:2009/01/04(日) 04:31:10 ID:OlEL3WLc
待てばcairoの日和あり
160login:Penguin:2009/01/04(日) 09:09:03 ID:Ls6s3Y+a
で?
161login:Penguin:2009/01/08(木) 14:49:56 ID:25IYEPJi
初めて拝見するが、
ここの良スレ度にびっくりした。
162login:Penguin:2009/01/11(日) 10:45:28 ID:G50GhRZF
「右」キーにアクションをバインドしたいんですが、どうすればできますか?
今は仕方なく
gtk_widget_add_accelerator (foo, "activate", accel_group,
GDK_Right, GDK_MODIFIER_MASK,
GTK_ACCEL_VISIBLE);
のようにしてますが、実際は GDK_MODIFIER_MASK 無しで「右」キーのみ
で作用するようにしたいんです。
163login:Penguin:2009/01/12(月) 22:30:23 ID:Ap11sUPz
ところでさ、なんでGtkTreeViewColumnに
gtk_tree_view_column_get_widthはあるのにgtk_tree_view_column_set_widthはないの?
なんでカラムの幅を非常にまわりくどい方法でセットする事しかできないんだろう。
164login:Penguin:2009/01/13(火) 21:49:47 ID:4aexh9M5
バカ除けのため
165login:Penguin:2009/01/14(水) 06:35:18 ID:ON4hZt79
>>164
なにそれww
166login:Penguin:2009/01/14(水) 10:40:30 ID:hbYm8nJe
>>163
他のコラムに対する影響を考えないといけないからでないの? 推測だけど
167login:Penguin:2009/01/19(月) 07:00:18 ID:Zkvelgln
どうすればtoolbarを縦に位置させることができますか?
168login:Penguin:2009/01/19(月) 14:58:09 ID:rA2FfI0+
ディスプレーをガタンとですね
169login:Penguin:2009/01/19(月) 15:05:50 ID:Zkvelgln
>>168
???
170login:Penguin:2009/01/20(火) 05:28:26 ID:N3/xwV6v
>>167
D&D
171login:Penguin:2009/01/20(火) 07:38:29 ID:eUZx4J2+
>>168
ワロタ
172167:2009/01/21(水) 13:15:59 ID:cRTwudVb
>>168
真面目に答えていただけませんか?

>>170
詳しく教えてください。
173login:Penguin:2009/01/21(水) 16:47:39 ID:oi/rQuGm
>>172
自分は真面目に調べたのか?
174login:Penguin:2009/01/21(水) 22:48:05 ID:zay9Vio9
>>167
まず言語は何でプログラミングしてるの?
個人的には盛り上がって欲しいスレではあるのだけれど。
CでガリガリGTKアプリ書いてる人あんまりいないのかな…
175167:2009/01/22(木) 01:25:28 ID:qMqmINP5
>>174
C でやってます。
176login:Penguin:2009/01/22(木) 02:12:53 ID:N/oI0lI0
>>175
set_orientationでvertical指定
詳しくはググれ

177login:Penguin:2009/01/23(金) 07:41:44 ID:Azeyn9TC
Objective-C使ってます
178167:2009/01/23(金) 13:07:07 ID:AEZO7GNu
toolbar を縦(vertical)に配置することには成功したのですが、
menubar を縦(vertical)に配置する方法が見つかりません。

// 例えば、menubar に対しては gtk_toolbar_set_orientation と同様の関数が存在しません。

どうすればできるでしょうか?
179login:Penguin:2009/01/24(土) 17:41:53 ID:j3OrWlaN
linuxデスクトップユーザーの特徴

@インストールしただけで選民思想
Aやっていることはwindowsと同じ。しかもめんどくさくなっただけ。
Bコマンド打ち込んでプロだと勘違い
C黙ってwindowsでも使ってろと間口を狭める
D素人がだのなんだのとwindowユーザーを馬鹿にする
Eカーネルいじればいいだろと無茶を要求
Flinux開発者とのずれを認識できていない
Gwineを使うくせにlinuxを再現しようとする動きがあるとたたく

       冫─'  ~  ̄´^-、
     /          丶
    /             ノ、
   /  /ヽ丿彡彡彡彡彡ヽヽ
   |  丿           ミ
   | 彡 ____  ____  ミ/
   ゝ_//|    |⌒|    |ヽゞ
   |tゝ  \__/_  \__/ | |    __________
   ヽノ    /\_/\   |ノ  /
    ゝ   /ヽ───‐ヽ /  /  linuxはめんどくさくて難しい分だけ、
     /|ヽ   ヽ──'   / <  自称プロが悦に浸るためのツールとして最高なんじゃないだろうかwww
    / |  \    ̄  /   \
   / ヽ    ‐-            ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
180167:2009/02/01(日) 07:28:50 ID:lE4ur93H
お前等、なにも知らないんですね。
181login:Penguin:2009/02/02(月) 10:47:56 ID:IIH5qxfd
もともと閲覧者が少ないスレで
自分の欲しいタイミングで回答を得ようとしてるのが間違い

半年位待ってみろ
182login:Penguin:2009/02/02(月) 11:13:18 ID:6BkR0lwx
>>181
では、LinuxでGUIを作るにはどのライブラリを使うのでしょう?
183login:Penguin:2009/02/02(月) 11:41:10 ID:J5ctVuxx
* 女でLinux使ってる奴 -- http://pc11.2ch.net/test/read.cgi/linux/1224332593/355
355: login:Penguin [] 2009/01/19(月) 12:20:24 ID:Zkvelgln

私は女に一番受けのいいlinuxディストリビューションを知っている。


* Gnome vs KDE -- http://pc11.2ch.net/test/read.cgi/linux/1185851003/136
136: login:Penguin [] 2009/02/01(日) 11:19:51 ID:lE4ur93H

今 C の gtk+ 使ってアプリ書いてるけど、
血反吐でそうなぐらい面倒くさい。。。
だれかもっと使いやすいライブラリ作ってくれ。。。


* 女でLinux使ってる奴 -- http://pc11.2ch.net/test/read.cgi/linux/1224332593/417
417: login:Penguin [sage] 2009/02/01(日) 12:29:52 ID:lE4ur93H
>>416
発音は「テック」。
英語ができない日本人はなぜか「テフ」と言っている。
偽の発音を使い続けるのはそろそろ止めにしないか?

本当は「イケマン」と言うべきなのに、「イケメン」
と言う日本人。もうね、アホかと。


* 女でLinux使ってる奴 -- http://pc11.2ch.net/test/read.cgi/linux/1224332593/415
415: login:Penguin [sage] 2009/02/01(日) 11:05:18 ID:lE4ur93H
>>413
○ tex = テック
× tex = テフ
184167:2009/02/02(月) 13:03:00 ID:9NCOwk9m
>>183
変な事言ってるように仕向けたいんだろうけど、
lE4ur93Hは正当な事言ってんじゃん。
185login:Penguin:2009/02/02(月) 20:46:11 ID:2frQG7fR
ただの荒らしコピペに反応すんなよ
NG登録されて回答もらえなくても知らんぜ
186login:Penguin:2009/02/10(火) 20:32:40 ID:8DV6Um/n
ファイル選択ダイアログを、ターミナルから閉じたくて、
下の処理を入れたのですが、ダイアログを閉じた後、応答が無くなります。
(GUIでキャンセルボタンや×をクリックすると正常に閉じれる)
どうすれば、ターミナルから正しく閉じれるかを教えてください。

GtkWidget *filew = NULL;
void FileSelection::destroyFileSelection()
{
  status = false;
  gtk_widget_destroy(filew);
}
187login:Penguin:2009/03/29(日) 11:33:55 ID:JOkFFCq+
Windowsでは、自分以外のプロセスが管理しているウィンドウのハンドル(動作中のOS上で
ユニークな識別番号)を得ることができれば、そのウィンドウのサイズやデスクトップ上での
位置などを好きにいじくったりできるのですが、LinuxのGTK+(またはGNOMEもしくはX Window
System)にそのようなAPIのようなものはありますか?
188187:2009/03/29(日) 11:38:55 ID:JOkFFCq+
すみません、ageさせてください。

なにがやりたいかと言うと、特定の文字列をウィンドウタイトルに含むトップレベルの
ウィンドウに対して、デスクトップ上での表示位置やサイズを変更したりといったことです。
189187:2009/03/29(日) 20:36:19 ID:JOkFFCq+
自己レス

libwnckてのが関係ありそうだが、Rubyから使えるんだろうか。Pythonにはそのための
モジュールが既にあるみたいなんだけど。今Ubuntu起動できないからよくわからん。
190login:Penguin:2009/03/29(日) 21:12:45 ID:Afl3tAxS
>>187
wmctrl コマンドのソースでもみればいいんじゃね?
191187:2009/03/30(月) 10:56:06 ID:+ewzli1b
レスありがとうございます。こんなコマンドがあったんですね。自分の目的にはこれを
利用するだけで十分そうですが、ソース読むのも勉強になって面白そうですね。

結果的にスレ違いになってしまってすみません。
192login:Penguin:2009/04/23(木) 11:32:24 ID:rK6Swnpx
だれか clispからgtkを使う方法を教えてください
193login:Penguin:2009/07/10(金) 07:43:15 ID:jUacI/UD
VMwareがGtk産だったとは
194login:Penguin:2009/07/17(金) 23:36:58 ID:hHQTz6KG
本気で聞く
おまえらはどうやってGTK+勉強なさいましたか?
195login:Penguin:2009/07/18(土) 13:41:00 ID:MyXAq5ze
>>194
GTK+ソース付属のexamples+demosを動かして遊ぶ

GTK+ソース付属のtutorialを一通りこなす web: http://library.gnome.org/devel/gtk-tutorial/stable/

doc/reference読み方を覚える

小さいアプリをsourceforgeとかfreshmeetで見つけてきて参考にする

irc.freenode.netの#gtk+とかメーリングリストで質問
196login:Penguin:2009/07/18(土) 15:41:41 ID:0IAjxnq5
難しそうですね
断念しました

ありがとうございませんでした
197login:Penguin:2009/07/18(土) 18:31:08 ID:NxC2oWbI
何をどう見たら難しそうなんだよ?
ゆとりか?
英語にびびるな!

サンプルソースなんてコピればコンパイルできる

WindowsでもLinuxでもCode::Blocks使えばそれほど
コンパイルできる開発環境の準備には手間取らない
198login:Penguin:2009/07/18(土) 19:30:03 ID:+ryPUP7D
ママが一から十まで教えてくれなきゃイヤなんじゃね
199login:Penguin:2009/07/18(土) 20:00:15 ID:ghQ1gSty
pygtkがいちばんやさしくてにょろにょろ
200login:Penguin:2009/07/18(土) 20:39:03 ID:0IAjxnq5
>>197
そうですね
サンプルソースをコピーして勉強したことにしようと思います

>>198
そうですね
パパじゃいやです

>>199
そうですね
数十年ぶりにしゃぶりたいです

>>195
俺、本気になります!真面目に勉強します!
ありがとうございました!!
201login:Penguin:2009/07/19(日) 01:03:57 ID:vKaqQMs4
携帯とか組みこみでGTK+を使っているものって何かある?
海外では結構あるみたいだけど、日本だと聞かないよな。
202login:Penguin:2009/07/24(金) 16:52:07 ID:99ViSCNs
>>201
書いてないだろ常考
203login:Penguin:2009/07/24(金) 17:15:55 ID:aH4gErtS
>>202は日本語に不自由な方?
204login:Penguin:2009/07/24(金) 17:48:23 ID:99ViSCNs
うん
205login:Penguin:2009/07/24(金) 23:12:42 ID:6YmCBCzn
GTKはもう少しで消滅する
googleの新しいソリューションに置換される
206login:Penguin:2009/07/25(土) 04:36:37 ID:00SH8Kn9
Chrome OS の事か?
確かにウィンドウシステムは時前のものを用意するらしいけど、
どうなんだろうね。そもそもソースが公開されるかどうかも怪しい。
それに、GTK+の培ってきた年月を一気に越えられるとも思えないし。
207login:Penguin:2009/07/25(土) 05:18:20 ID:corW1o/2
グーグルは基本Qtじゃないの。
でも今更ブラウザの下の層なんか関係ないはず。
HTML5 でアクティブデスクトップっていう懐かしいお話をもう一度やるんでしょ
208login:Penguin:2009/07/25(土) 06:22:09 ID:00SH8Kn9
まぁ、googleはWEBアプリが基本だから、そうなるのかね。
ただ、この事前の大袈裟なプロパガンダはMSに似てるなw
209login:Penguin:2009/07/25(土) 09:19:09 ID:wdRQEHVW
GTKスレはあるのにQTスレがないのはなんでだろう〜
210login:Penguin:2009/07/25(土) 10:58:46 ID:QoKls/xb
>>209
ム板にあるからじゃないか?
211login:Penguin:2009/07/25(土) 11:39:56 ID:IOPwPp1+
>>209
http://pc12.2ch.net/test/read.cgi/tech/1239996587/

どっちかと言うとQtの方が活発
212login:Penguin:2009/08/23(日) 00:41:14 ID:cXbPjTOU
初歩的な質問です。

Xを使わずにフレームバッファを使うGTK+アプリをリンクする際は、どのgtkライブラリをリンクすればいいのでしょうか?
Xを使う場合だと以下のようなリンクオプションになると思いますが、フレームバッファを使用する場合のリンクオプションを教えてください。
$ pkg-config gtk+-2.0 --libs
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
213login:Penguin:2009/08/23(日) 01:17:03 ID:oYmg5B0H
Xを使わずにフレームバッファを使うGTK+とやらはインストールしてあんの?
214212:2009/08/23(日) 02:02:51 ID:cXbPjTOU
debian上からaptitudeでlibgtk2.0とlibgtk2.0-dev関連のライブラリをインストールしてあります。
215login:Penguin:2009/08/23(日) 06:49:16 ID:Do4KpMOi
Xを使わないと動かんよ。
Gtk+はXLibの面倒臭さを軽減するためのライブラリに過ぎんのだから。
Windowsに移植する場合にもXLib相当のが要る
216login:Penguin:2009/08/23(日) 09:20:44 ID:WBxszhFm
>>214
それはX用のパッケージ。
フレームバッファ用のGTKはlibgtk-directfb-2.0-*だぞ。

>>215
知ったか乙
217212:2009/08/23(日) 10:44:26 ID:cXbPjTOU
>>216
そうなんですか!

以前ググったら下記サイトのフレーズが目に留まり、てっきりDirectFBじゃなくてもフレームバッファでも利用可能なのだと思ってました。 orz
ttp://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch3
>GTK+
>GNOME アプリケーションでユーザインターフェースを構築するのに利用される基礎的なライブラリで,XWindow System 上で動作します(http://www.gtk.org/).フレー>ムバッファやDirectFB 上などでも動作するように設定することができます.

ご教示いただいたライブラリをインストールして確認してみます。
218login:Penguin:2009/08/29(土) 19:05:24 ID:7RbftsXX
libgrade+gtkmmをいじって遊んでいるのだけど
メインウィンドウからダイアログのようなウィンドウを開く
サンプルは何処かに有りませんでしょうか
219login:Penguin:2009/08/29(土) 21:56:36 ID:OBRUPUZc
>>218
gtkmm-demo を起動してみては?
結構いろんなサンプルがあるな > gtk-demo pygtk-demo gtkmm-demo
220login:Penguin:2009/08/30(日) 01:00:57 ID:XE+apBqt
>>219
libgladeを使っていない様です。
221名無しさん@そうだ選挙に行こう:2009/08/30(日) 08:33:18 ID:Czh9S0PJ
>>220
libgladeは使われなくなる方向だから、、、って思ったけど、
gtkmmだとBuilderを使ったサンプルが無いな。。。
おそらく、以下はチェックされていると思うけど、
http://gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-libglademm.html
複数のwidget idを使っているサンプルは無いですね。。。
Gnome::Glade::Xml::create()して、get_widget()して、
signal処理してrun()する流れは同じだと思うけど、
丁度良いサンプルは見つからないな。。。
222名無しさん@そうだ選挙に行こう:2009/08/30(日) 08:51:11 ID:IHJ1WvuS
>>221
有難うございます。小汚い書き方で何とか表示だけはするようになりました(いろいろ問題が有るけど)
綺麗に書いてあるサンプルなど見ればもう少しましになるかと思ってたのです。
libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
今は何を使う方向なんでしょうか?
223名無しさん@そうだ選挙に行こう:2009/08/30(日) 10:37:24 ID:Czh9S0PJ
>>222
> libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
> 今は何を使う方向なんでしょうか?
Glade 3.6.7のglade-3を起動したら、プロジェクトのオプションってダイアログが開く。
そこには、プロジェクトのファイル形式でGtkBuilderとLibgladeを選択できる。
今後は、GtkBuilderがデフォルトになって、ファイル接尾子が.uiになる。

サンプルはgtk-demoのBuilderのソースを見るとわかると思う。
そして、gtkmmのサンプルが無いな〜って話。

http://live.gnome.org/TwoPointTwentyseven/Platform
のUpcoming Deprecationsで非推奨になっているものは、消えゆく運命。
224名無しさん@そうだ選挙に行こう:2009/08/30(日) 11:08:36 ID:IHJ1WvuS
>>223
Debianのlennyを使っているのでAnjuta 2.4.2、Glade 3.4.5です・・・
GtkBuilderのサンプル探しの旅に出たいと思います。有り難うございます
225login:Penguin:2009/08/31(月) 02:59:20 ID:WV5KE7UC
glade も GtkBUilder もほとんど同じだから、リファレンスを見ながらで
書けると思うけど。
226login:Penguin:2009/08/31(月) 14:47:43 ID:4XJ92u20
GtkBUilderを使ったGtk::Drawingariaのサンプルを作ろうとしたんだけど
途端に分からず・・・
イベントとかどうやってつなげたらいいのだろう
イベント処理で書かないと無理だよね?
227login:Penguin:2009/09/01(火) 01:49:35 ID:o0MV2wSR
とりあえずこんな感じか。
(ちなみに C++ は main に限って return は不要。これ豆知識な)

int main(int argc, char** argv)
{
Gtk::Main kit(argc, argv);

AppWindow::Initialize(argc, argv);

Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file(AppWindow::GLADE_FILE_NAME);

AppWindow* app_window = 0;
builder->get_widget_derived(AppWindow::WINDOW_NAME, app_window);

kit.run(*app_window);
}
228login:Penguin:2009/09/01(火) 01:51:56 ID:o0MV2wSR
class AppWindow : public Gtk::Window
{
public:
static const char* GLADE_FILE_NAME;
static const char* WINDOW_NAME;

static void Initialize(int argc, char** argv);

AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
virtual ~AppWindow();

protected:
void on_quit_action_activated();

private:
const Glib::RefPtr<Gtk::Builder>& m_builder;

Glib::RefPtr<Gtk::Action> m_act_quit;
};
229login:Penguin:2009/09/01(火) 01:58:01 ID:o0MV2wSR
const char* AppWindow::GLADE_FILE_NAME = "app_window.glade";
const char* AppWindow::WINDOW_NAME = "window1";

void AppWindow::Initialize(int argc, char** argv)
{
// 初期化なんかをここで

// OpenGL の描画を独立して(別ウィンドウで)出来るようにしてみる
Glib::signal_idle().connect(sigc::bind(sigc::ptr_fun(PollEvent), DrawGL));
}

AppWindow::AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
: Gtk::Window(cobject), m_builder(builder)
{
m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));

m_act_quit->signal_activate().connect(mem_fun(*this, &AppWindow::on_quit_action_activated));

move(0, 0);
resize(240, 720);
}

AppWindow::~AppWindow()
{
}

void AppWindow::on_quit_action_activated()
{
Gtk::Main::quit();
}
230login:Penguin:2009/09/01(火) 02:02:59 ID:o0MV2wSR
ただの Gtk::Window で悪いけど Gtk::Drawingaria でも大差ないはず。
app_window.glade は GtkBuilder 形式の xml ね。
大体こんな感じが典型的な処理だと思うよ。
231login:Penguin:2009/09/01(火) 20:43:11 ID:LcijR9gh
>>226
> イベントとかどうやってつなげたらいいのだろう
> イベント処理で書かないと無理だよね?
drawareaをeventboxの上に乗せないとダメじゃなかったっけ?
# と、テストもせずにカキコ
232login:Penguin:2009/09/01(火) 20:45:43 ID:azH81sw2
有難う、私が書いていたのと大分違うみたい
少しずつ見てみるよ
233login:Penguin:2009/09/02(水) 01:45:20 ID:XY5vbVWT
ちなみに AppWindow みたいに Gtk::Widget を継承している場合は、単に

class AppWindow : public Gtk::Window
{
public:
virtual void on_show()
{
cout << "表示された" << endl;
}
};

みたく仮想関数をオーバーライドするだけでいいんだけどね。

ただ、これもトップレベルのウィンドウのイベントしか反応できないから、
>>229 のコンストラクタみたく cast_static なんかでボタンとか取得して、
自分のメソッドを connect していくのが C++ っぽい書き方な気がする。
234login:Penguin:2009/09/02(水) 13:02:19 ID:Wp36mia7
>>227
コンパイルしてみたけどエラーで落ちてしまったよ

m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
これってどんな意味かな?
235login:Penguin:2009/09/02(水) 18:54:23 ID:Wp36mia7
結局こんな感じに書いてつながったけど、何かモヤモヤするよ
複雑になってくると小汚くなりそうだなー

builder_xml->get_widget( "drawingarea1", daria1 );
daria1->signal_button_press_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_press ) );
daria1->add_events( Gdk::BUTTON_PRESS_MASK );
daria1->signal_expose_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_expose_event ) );
daria1->add_events( Gdk::POINTER_MOTION_MASK );
daria1->signal_motion_notify_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_motion_notify_event ) );
daria1->signal_realize().connect( sigc::mem_fun( *this, &MyDialog::on_daria_realize ) );
236login:Penguin:2009/09/02(水) 19:25:12 ID:Wp36mia7
class MyDialog
{
Glib::RefPtr<Gtk::Builder> builder_xml;
Gtk::DrawingArea* daria1;

public:
MyDialog();
virtual ~MyDialog(){}
bool on_daria_press(GdkEventButton* event);
bool on_daria_expose_event( GdkEventExpose* event );
bool on_daria_motion_notify_event( GdkEventMotion* event );
void on_daria_realize();
};
237login:Penguin:2009/09/03(木) 02:34:12 ID:6mgKfH1n
>>234
> m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
> これってどんな意味かな?
これは GtkAction を取得するんだけど get_object は Glib::RefPtr<Glib::Object> を返す
からキャストが必要になるけど、ドキュメントには cast_static を使うようにって書いて
あるからこうしてる。

当然 app_window.glade に "action1" という名前の GtkAction がないと駄目だよ。
それで落ちてるんじゃない?
238login:Penguin:2009/09/03(木) 02:38:43 ID:6mgKfH1n
>>235
別にそんな小汚くはないと思うけど。大体そんなもんだよ。
239login:Penguin:2009/09/03(木) 02:47:30 ID:6mgKfH1n
>>236
MyDialog は Gtk::DrawingArea を継承してもいいかも。
それと on_* は protected の方がいいよ。
240login:Penguin:2009/09/03(木) 12:32:06 ID:jVnTHMiE
>>234
適当なGtk::WindowのGUIを作って読み込ませたんだけど
それがうまく行ってなかったのかもしれない
色々有難う

GtkBuilderを使わない方も少しいじってみるよ
241login:Penguin:2009/09/06(日) 14:05:15 ID:aXigLrxm
Gtk::SpinButtonを浮動小数点表示にする事は出きますでようか?
242login:Penguin:2009/09/14(月) 13:21:24 ID:kBmevVmP
cairommでバックバッファを使った描画はどうすれば良いのでしょうか?
save(),restore()は少し違うような気がして・・・
243login:Penguin:2009/09/15(火) 17:55:42 ID:1BtVuQj7
GTK+onDirectFBをインストールしようと思ってDirectFBのサイトに行こうとしたら
なぜか繋がらないんだけど誰か教えr・・・教えてください。
244login:Penguin:2009/09/15(火) 17:56:26 ID:1BtVuQj7
sageちまった
245login:Penguin:2009/09/15(火) 17:59:06 ID:1BtVuQj7
ttp://www.directfb.org/

URLも貼っておきます。
繋がらない、マジで誰か教えてください
246login:Penguin:2009/09/21(月) 16:41:13 ID:X29eYjZv
GtkGLextmm を使っている人はいますか?
実装具合とか、こっちのライブラリの方が良いよとかありましたら教えて頂きたいのです。
超初心者なのでMesaとかとの違いも分かりませんがGtk繋がりと言うことで宜しくお願いします。
247login:Penguin:2009/09/24(木) 10:56:15 ID:hMFgf6/j
独自処理のバッテリー残量表示のために
Ruby/Gtk2でGtk::StatusIconを使ってみたんですが、
tooltipは付けられても、どうもlabelを付けることができなさそうです。
通知領域にテキストないしはアイコン+テキストを表示したいのですが、
どんなクラスを使えばいいんでしょうか?
リファレンスを見た限りではちょっと見当が付きませんでした。
Gdk::Pixbufにテキストを動的に描画するのかな。
248login:Penguin:2009/09/24(木) 11:11:57 ID:hMFgf6/j
http://www.daa.com.au/pipermail/pygtk/2009-June/017120.html
http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gdk%3A%3APixbuf

どうもそのようですね。でも、もっと簡単にできないもんか……。
249login:Penguin:2009/09/25(金) 18:17:32 ID:WaiZYKyV
>>243-245
DirectFBのソースをDLしようとオフィシャルサイトを開こうとしたけど、まだサーバが落ちたままだね・・・
9/14頃から落ちてるっぽいからメンテナンスにしては長過ぎだよね。
もしかしてDirectFB終了フラグON?
250login:Penguin:2009/09/27(日) 00:08:06 ID:ng4uKqzS
>>249
今はつながってる。digしたら212.227.87.76だった。
251login:Penguin:2009/09/28(月) 02:12:56 ID:5e1BLaTK
GTK+2.18記念あげ

ウィンドウの管理すらGDKで行なうようになり、ちらつきを減少させたり
ウィンドウの変形やアニメーションを行なえるようになったり、別の
(Clutterのような)描画ライブラリの中に簡単に埋め込めるように
なったりしたようだ。

他にも、各プラットフォーム毎に実装していたウィンドウを管理するコード
を共通にする事ができるようだ。

WindowsやMacOSXでの動作が改善されたらいいなと。
252login:Penguin:2009/10/04(日) 14:16:19 ID:P8VQfdNh
gtkmmで複数のウィンドウを開くプログラムは作れますか?
イメージ的にはGIMPの様なコントロールが有って描画画面が有る感じ
gtk+を使えば出来るのかな?
253252:2009/10/05(月) 12:16:45 ID:yVAGOb64
やり方が分かったの報告(するまでもないのかな・・・)
Gtk::Windowを継承したクラスをインシタンス化して

hogehoge.show()

で表示されました。(バカみたいな話でお恥ずかしい)
254login:Penguin:2009/10/07(水) 17:30:55 ID:PMxweG2O
インシタンス><
255login:Penguin:2009/10/11(日) 18:03:35 ID:Sidlsc4E
Failure to compile 64 bit gtk on mac os
http://buffalothedestroyer.blogspot.com/2009/07/blog-post.html
>Attempted to install gtk+-2.17.2 on my mac. Had to install:

http://www.nabble.com/Gtk-issues-td23803508.html

mac 環境だと gtk は使えないんだろうか…?
256login:Penguin:2009/10/12(月) 14:47:14 ID:sqmRrC1g
ググってみたけど使えるっぽいよ
257login:Penguin:2009/10/13(火) 21:28:52 ID:l2EymYVQ
>>255
Leopard だけど、MacPortsからインスコできたよ。
Ruby/GtkとPyGtk用にと。
258login:Penguin:2009/10/14(水) 03:07:04 ID:VVFhTsV6
http://www.amazon.co.jp/入門GTK-菅谷保之/dp/4274067769

webの情報をまとめた程度らしいけど
gtkmmも扱って欲しかったかな
259login:Penguin:2009/10/14(水) 03:31:23 ID:cB0J9abS
Gtk+2 で初の和書じゃないの。出るだけで価値がある
260login:Penguin:2009/10/14(水) 03:43:48 ID:Evvplg3O
まぁお布施のつもりで買っておくか
261login:Penguin:2009/10/14(水) 12:08:22 ID:oK0tjYE+
Gtk::SpinButtonの値が変更された時に発生するイベントを一時的に停止することは出来ますか?
複数のGtk::SpinButtonが変更されるのが分かっている場合に一時的に停止して
手動でアップデートしたいのです。
262login:Penguin:2009/10/14(水) 22:05:50 ID:8MVmnU1X
>>258
gtk2hsも扱って欲かったwww
買うけどなwwww
263login:Penguin:2009/10/14(水) 23:22:20 ID:QhaIdhW6
QtよりGTK+がイイみたいだぬ、GTK+に決めるぬ
264login:Penguin:2009/10/15(木) 00:17:55 ID:K/xBs5bI
Qtもいいぬ。触ってみてぬ(´・ω・`)
265login:Penguin:2009/10/15(木) 03:29:50 ID:eDklkq43
>>258
そもそも洋書でもgtkmmはないだろ。そんな中で日本語の本なんて奇跡が
起こらない限り無理だろ。
266login:Penguin:2009/10/15(木) 13:37:26 ID:pxmDyP/M
>>258
独創的なな表紙だな
267login:Penguin:2009/10/15(木) 23:20:38 ID:eyJUfiVx
   【恐怖の】呆れるほど危険な民主党の正体【民主党】
    http://www.yo●utube.c●om/watch?v=●MUv12Ae7ojE
    小沢一郎 〜 闇の系譜 :秘書逮捕の真相/北朝鮮との黒い関係 高画質
    http://www.yo●utube.com/w●atch?v=gdKVt●_vKCHc
    2/3【イリハム・マハムティ】東トルキスタンの歴史と中共の弾圧[H21/7/8]
    http://www.you●tube.com/watch?v=6eUN●hjdBLXg
    漫画で学ぶチベット問題
    http://www.ni●covideo.jp/w●atch/sm275●2213
    日米規制改革および競争政策イニシアティブに基づく日本国政府への米国政府要望書
    http://japan.u●sembassy.●gov/j/p/tpj-j2●0041020●-50.html#mineika-s

●の部分は外してブラウザのURLに入れること

268login:Penguin:2009/10/16(金) 23:10:15 ID:qPhMCs8o
>>258
「入門GTK+」
今日、買ってきたよ。

最近は、Web上のホームページのプログラミング解説の方が分かり
易いとうことが多くなってきているようだけど、
「入門GTK+」を
サックっと、50ページくらい読んでみたところ
この本は、意外に読みやすいし、わかり易い。
他のプログラミングの習得に挫折した人でも何とかいけそうな感じかな。
269login:Penguin:2009/10/16(金) 23:12:12 ID:q3/VuRbk
QtだとQt CreatorとゆうIDEが使いやすいけど、
GTK+使う時はどんなIDE使うと便利ですか。
270login:Penguin:2009/10/16(金) 23:26:21 ID:qPhMCs8o
>>269

「入門GTK+」では、Anjuta(アニュータ)が紹介され解説されているね。
271login:Penguin:2009/10/16(金) 23:34:15 ID:qPhMCs8o
そうそう、時間があったので
qt4の解説書も立ち読みしてきたんだけど、今日買った「入門GTK+」
の方がわかり易かった。

誰か、「猿でもわかるqt4」って本、書いてくれないかな〜
272login:Penguin:2009/10/16(金) 23:37:35 ID:q3/VuRbk
GTK+は使ったときないけど、QtもQt Creatorもすごく使いやすいぬ(´・ω・`)
GTK+簡単なら使ってみようかしら。
273login:Penguin:2009/10/17(土) 14:15:16 ID:XYXybyM0
>>268
読みやすいのか、ボーナス出たら買おうかな。

>>272
C++使えるならQtだけでいいんでない?
おれはCしか知らないからGTK…
274login:Penguin:2009/10/17(土) 15:22:41 ID:nWRW4zS0
そいつム板のwxスレを荒らしてるキチガイだから放置推奨
275login:Penguin:2009/10/18(日) 03:51:09 ID:+Fs337jm
Gtk+の場合はGladeってのがある。もちろん簡単。
276login:Penguin:2009/10/18(日) 09:53:27 ID:juku8Oo/
gladeはもうobsoleteだけどね。今はGtkBuilderを使う
277login:Penguin:2009/10/18(日) 09:59:19 ID:oZOJkxHq
glade自体はまだまだ現役だよ。
ただlibgladeはもうobsoloteだけどね。
278login:Penguin:2009/10/18(日) 21:34:36 ID:mlVaod2q
>>271
ok
究極の友愛本と帯に書いておくよ
279login:Penguin:2009/10/21(水) 08:09:56 ID:2ccCLXEP
あと半年たらずでGTK+3が出るこの時期に出さんでもという気もするが。
280login:Penguin:2009/10/21(水) 12:58:05 ID:tvBs0TF8
>>279
HPに公開していたGTK+の第2版までのドキュメントを著書にしたいという願いと、
出版社側での「最近GTK+の本が出ていないので出したい」と言う思わくが一致して
GTK+-2の解説であっても出したんでないの。
281login:Penguin:2009/10/21(水) 21:25:41 ID:6UoL2jU0
GTK+3ってそんなに変わるの?
282login:Penguin:2009/10/21(水) 22:08:56 ID:dJLlBo7l
>>281
うん
283login:Penguin:2009/10/22(木) 05:25:32 ID:sG60T9Up
3Dデスクトップをデフォルトにする方向性はやめてほしい。
Vista も KDE4 も総スカンだろ?
CPUのクロックが頭打ちなんだから、プログラマは節制しないと。
284login:Penguin:2009/10/22(木) 06:02:24 ID:IEkHgIHU
CPUのクロックが頭打ちだからこその3D描画だろ
GPUにやらせたほうが描画は速い ※適切な3Dドライバがある場合に限る
285login:Penguin:2009/10/22(木) 07:05:43 ID:+CGcKXd7
オイラは、普段非力なマシンばかり扱っているから3Dをすると重くてかなわん!
GTK+3が出ても当分は、GTK+2を使うよ。

「入門GTK+」を参考にすれば、jpgやgifのイメージビュ-ワが簡単に作れるし
動作も軽いからね。
286login:Penguin:2009/10/22(木) 09:00:06 ID:hz6htkDb
描画は速いかもしれないがメモリ食うんだ
287login:Penguin:2009/10/22(木) 18:11:31 ID:oTwQaR0U
GTK+3は使用メモリ量が減って重くなるの?
288285:2009/10/22(木) 19:41:05 ID:2c91WZnW
因みに我が家での、
「入門GTK+」を参考に作ったイメージビュ-ワで
画像 1024x768_16bit_color.jpg(65536色)表示時のメモリ使用量は、

イメージビュ-ワ本体だけの立ち上げ時: 1.25MB
画像1024x768_16bit_color.jpg表示時: 1.25+2.62=3.87MB
だった。
289login:Penguin:2009/10/22(木) 22:10:41 ID:1jy7wL1R
Windows だと何十メガとメモリ食うよね。
まあしょうがないんだろうけど。
290login:Penguin:2009/10/22(木) 22:42:41 ID:GKZrjVVp
GTK+3はスルーしてGTK+4まで待つお(´・ω・`)
291login:Penguin:2009/10/23(金) 02:29:05 ID:icsRYQ9+
Gtk+3は現状で限りなく3に近づいているから、そんなに変わらない。
292KyPAWlrSIokuKhBa:2009/10/23(金) 22:50:30 ID:gHGN7SxH
The psychology literature certainly has a lot to say about the topic, but economists have a rather simplistic view of the issue. ,
293login:Penguin:2009/10/24(土) 00:38:30 ID:9RfZkvGi
>実のところ,私はKDE-1.0を見て(日本語は通らなかったものの)デスクトップ分野での UNIXの未来を確信し,
>GNOME-1.0を見て目の前が真っ暗になった人なのですが(笑)
>当時はQtが改変不可だったために,GTK/GNOMEを選択せざるを得なかった.

とあるサイトの人のことばなんですが、詳しいことがさっぱりなので、どういう文脈なのかわかりません
誰か解説していただけたら幸いです。もしこれが荒れるような内容でしたらスルーを…
294login:Penguin:2009/10/24(土) 01:27:11 ID:BKx301Ml
趣旨は脚注でない本文のほうにあると思うが、
GObjectも定着して成長したし、いまは中の人の評価も少しは違うかも。
まぁGtk+はダサい技術だと思う。でもダサいほうが品質高かったりするわけだが
295login:Penguin:2009/10/24(土) 01:54:57 ID:Qc2ltt6a
クラス構造体の中に変数詰めてるとか(VTableとしても使えたなら…)、
G_SIGNAL_ACTIONフラグはただの目印にしかしてない所や、
せっかくGObjectというランタイムタイプシステムこさえてるのに
一部C言語バインディングからしか使えない機能とかあるっぽいところとかGTK+はだせぇなあと思う。
でもGObjectは面白かった。QtのmocやSiGnal/SLOTはいまいちそそられない。
296login:Penguin:2009/10/24(土) 04:12:11 ID:wG3ZsfW/
今はValaが熱いよ。GObjectが好きな人なら尚更ハマること請け合い。

>>293
まぁ見ての通りだと思うけど、KDE1.0は衝撃的だったな。KDEが出るまでは
Linux(BSD)は一部のマニアのおもちゃでしかなかったのが一般にも普及しそう
な期待があった。
結局サーバー分野はある程度普及したけど、デスクトップ分野は今も昔も
変わってないけどね。
で、Gnome1.0あんまり記憶がないんだけど見た目はMotifに似ていてダサくて
動作が不安定だった記憶がある。
297login:Penguin:2009/10/24(土) 12:25:04 ID:9hbzJrW8
シグナルとかが補完されるエディタってないかな?
298login:Penguin:2009/10/24(土) 13:28:04 ID:KFtS7ScQ
>>297
gedit + gtksourcecompletion で、、、
http://gtksourcecomple.sourceforge.net/
valaでしか試してないけど、一応動く。
299login:Penguin:2009/10/24(土) 19:23:04 ID:wyOmgHI3
Gnome 1というとSolarisのイメージがあるなあ
大学の標準装備だった。俺は速攻twmにしたが。
300login:Penguin:2009/10/29(木) 23:20:42 ID:6yKiv2hH
これからGTK+を学ぼうと思っています。
主にLinuxで開発するつもりで、AnjutaというIDEを使ってみようと思いますが、
Windowsマシンでたまにコーディングしたいときにはどうしたらいいんでしょ?
Windows版ってありますか?
Linux板で聞くのは変ですが…。
301login:Penguin:2009/10/30(金) 21:38:43 ID:7aJTkb9U
>>300
ム板にもスレがあることに気づいて
そこの過去情報を読んだら解決しました。
お邪魔しました。
302login:Penguin:2009/11/01(日) 17:23:59 ID:qpVzDXQL
GUIツールキットを比較しつつ、どれがいいか検討しています。
今の第一候補はGTK+ですが、実際に使っている人の声を聞きたいです。
他の候補はQt、wxWidgetsで、言語はC++の予定です。

GTK+
 ・GnomeやXfceで使われているので、ユーザが多そう
 ・ライセンスはLGPL
 ・多くの言語向けのバインディングがあるが、CではなくC++だと少し注意が必要(?)
 ・各OSのネイティブなルック&フィールではないが、テーマによっては近い外観で描画できる

Qt
 ・KDEで使われている
 ・Nokiaがやっていて安心感がある
 ・LGPL、GPL、商用版のQPLは制限が非常に緩い
 ・おしゃれな外観(?)

wxWidgets
 ・GUIの他に多くの機能のラッパが存在して便利
 ・ネイティブなルック&フィール
 ・IDE、RADツールが豊富
 ・日本語の扱いにやや難あり(?)

Ultimate++というのも気になりますが、マイナーだし、日本語が使えない問題もあるようです。

これらは自分で集めた情報なので間違ってるかもしれません。
他にメリットやデメリットがあればどうぞ教えてください。
よろしくお願いします!
303login:Penguin:2009/11/01(日) 21:17:41 ID:lntj8SS+
C++ならQt
304login:Penguin:2009/11/01(日) 22:13:27 ID:qpVzDXQL
>>303
やっぱりGTK+はC++に向いてないということですね。
情報ありがとうございました。

他にも情報があれば皆さんよろしくお願いします。
305login:Penguin:2009/11/01(日) 22:14:04 ID:TdugBe1j
つGLUT
306login:Penguin:2009/11/01(日) 23:32:48 ID:o2Fus8Wv
>>304
gtkmmいいよ。
307login:Penguin:2009/11/02(月) 00:05:28 ID:F2TUeYlu
>>305
GLUTを調べて見ましたが、OpenGLのやつなんですね。
3Dにはあまり興味が無いですが、今後必要になったとき使ってみます。
情報ありがとうございました。

>>306
GTK+はC++との親和性が少し低いけど、gtkmmはC++用で問題ないということですね。
試してみます。
ありがとうございました!
308login:Penguin:2009/11/03(火) 01:21:46 ID:Vebc7itB
rubyでgtkプログラムをしたいんですけど、何かいい開発環境はないですか?
gladeとかでみためは作って変換できるのですが、中で実行するシグナル(っていうんですかね)がどういう感じで使えるかというのがわからないので
調べ調べになってしまいます。通常使ってるのはemacsとnetbeansです。これに似た、もしくはその上で動かせるものはありませんか?
補完とかできたらうれしいのですが。
309login:Penguin:2009/11/03(火) 19:55:27 ID:0PVkcWZ9
逆に「gladeとかでみためは作って変換できる」の部分を
詳しく教えてほしい。
310login:Penguin:2009/11/03(火) 20:05:58 ID:DNzdCjrE
gtk-builder-convertのことかな?
311login:Penguin:2009/11/03(火) 22:30:31 ID:1H0HUjWH
ruby-glade-create-template とかあったよな.
312login:Penguin:2009/11/04(水) 08:03:24 ID:03fE0NL7
クラスライブラリのリファレンス(英語)なら公式サイトでrbbrっていうサンプルアプリとして
置いてあるけど、そういうことじゃないのかな?
313308:2009/11/05(木) 02:27:28 ID:Cf0Et12U
>>309-311
311さんが言ってるみたいにruby-glade-create-templateで作ったgladeファイルを.rbに変換して
オブジェクトは作ったからメソッド書いて自分の思うような動きを作ってちょうだいな。みたいなところまではできます。
しかし、rbファイルを編集するときにrequire 'gtk2'をよんでいるのにemacsでもnetbeansでも補完してくれませんでした。

>>312
rbbrは使ってるOSにパッケージがあったのでそれを入れてみましたが。リファレンスを引けるようになりました!
リファレンスが引けると言うことは補完もできるのでは?と今悩んでいる状態です。
314309:2009/11/06(金) 12:34:31 ID:pFNFtZEf
>>310
>>311
>>313
サンクスです。ググったら
Ruby/Gtk2のチュートリアルに書いてあるね
規制でタイミング逸して返事書かなくてすまん
315308:2009/11/06(金) 17:32:52 ID:1VLamOE6
>>309さんはどんな感じでコードかいてますか?
リファレンス見ながらかいている感じですか?
316login:Penguin:2009/11/07(土) 07:20:09 ID:PbDi/n2M
>>302
亀レスながら俺も検討中なので...
GTK+はこれからやってみるので置いといて、

Qtはさすがに良くできてるけど、簡単なことをやろうとしても多くのクラスを
使わなければならず、また抽象的な概念みたいなもの(データモデルとか
データアイテム)とか出てきて、簡単に「サクッ」と作る感じではないので、
習得に時間が掛かりそう。「エキスパートのための高級品」のイメージ。
ウィジットの種類も豊富だし、一つのウィジットが多くの機能を持っているので
困ることはなさそう。

wxWidgwtsは確かにツールが豊富だけど、決定版と言えるものはイマイチ
ない気がする。wxDev-C++が導入簡単だけどデバッガーが環境や条件に
よって動作しないトラブル発生中。もう随分前に発覚したのになかなか
直らない。Delphiで書かれていて、近くC++に移植が予定されているようだ。
使えるのはCode::Blocksかな?

wxWidgwtsはQtよりは理解しやすいと思う。日本語の扱いは別に問題ないよ。
ウィジットの種類は豊富だけど、肝心なものがなかったり...
俺はスピンボタンつきの数値専用エディットボックスで、実数を
扱いたかったんだが、これが標準ではない。3rd Party製があるけど、
IDE/RADで、非標準のウィジットを簡単に取り込める仕組みを
持ったものがないので、結局手で書くしかなくて面倒。

Ultimate++は使い勝手が良くない。というかユーザーインターフェースの
設計が下手で、直感的に使えない。それと日本語の扱いに問題がある。
Windowsの話だけど、エンコーディングにCP932(SJIS)が選べないので、
utf-8にするしかない。それでもC++版Hello World!を「こんにちは 世界!」
にして実行したら文字化けしたので、カッとしてアンインストールして
しまった。

以上、ご参考まで。
317login:Penguin:2009/11/07(土) 07:40:28 ID:h9ilEYN9
Lazarus とか。 
318login:Penguin:2009/11/07(土) 07:53:25 ID:wJdSUuBx
gtkmmを薦めてるのがいるが真に受けんように
C++でまともに動いたら、scim-bridgeみたいなモノを作る羽目にはならん
319login:Penguin:2009/11/07(土) 11:52:06 ID:CPjNRklA
面白いのはわかるが、今更そんなんやったって・・・
激しくつまらんけど、これからはAIRですよ
320login:Penguin:2009/11/07(土) 13:30:53 ID:pZqg2eyF
いや、これからはJavaですよ
作ってて面白いしね
321309:2009/11/07(土) 15:04:13 ID:pqmmO2Ng
>>315
そうだね。
オンラインリファレンスを地味に検索しながら
emacsのruby-modeで書いてるよ。
methodsとかのメソッドで確認したりするぐらい。
emacsで構文解析してメンバ関数だのメソッドを補完する環境って無いんじゃないかな。
無作為に辞書から補完するのはあるかもしれんけど。
netbeansはよく知らない。
Ubuntuだと「追加と削除」からリRuby Browserというリファレンスビュワーが落とせるよね。
これはRuby/Gtk2のクラスも見られたと思う。
322login:Penguin:2009/11/07(土) 19:56:24 ID:nXIVDau4
型がなんでgintやgcharなの?
intやcharではダメなわけ?

C言語とのこういうちょっとした違いは
他にもいろいろあるの?
323login:Penguin:2009/11/07(土) 20:43:43 ID:P9pTNgo8
> 型がなんでgintやgcharなの?
移植しやすくする為の措置じゃなかったっけか
324login:Penguin:2009/11/07(土) 21:04:17 ID:nXIVDau4
「g」が付いてるほうが移植性が高いのかねぇ。

みんなはそういうのをどうやって覚えたの?
解説本とかあまり売ってないみたいだけど…。
325login:Penguin:2009/11/07(土) 21:25:19 ID:NL8bJnRF
>>nXIVDau4
たとえばlongが64bitの環境でも、glong的に32bitであってほしい場合にlongの代わりにintやint32をtypedefするとかな。
データ構造の隠ぺいとかはWeb上の先人の残した情報だったり、技術書立ち読みだったり、Win32やNSPRとか同じことやってる実例を見たりとかで知ったよ。
326login:Penguin:2009/11/07(土) 22:58:20 ID:FPX1oLqZ
>>324
C言語はintとかの定義に幅があるから
コンパイラが違えばintのサイズも異なったりするので
厳密に定義した独自のintを用意するわけですよ

先月出た本はどうでしょう
http://www.amazon.co.jp/dp/4274067769
327login:Penguin:2009/11/07(土) 23:54:07 ID:Iq2jGS9i
gint32、とかにした方が判りやすいのに
328login:Penguin:2009/11/08(日) 03:02:52 ID:A1QtHV1W
>>325-326
なるほど、なんとなくわかった。
ありがと。チュ!

本は今度本屋で見てみる。
329login:Penguin:2009/11/08(日) 22:19:03 ID:A1QtHV1W
GTK+をこれからやろうと思ってますが、C++よりC言語のほうがいいんでしょうか?
昔CもC++も少しずつかじりましたが、どっちも中途半端に終わって、今は頭の中でゴッチャになってます。
GTK+を始めるこの機会にどちらかをちゃんと勉強するつもりですが、どっちがいいか迷ってます。

CよりC++のほうが言語として優れていたり、C++を覚えたほうが何か有利だったりするんですかねぇ?
gtkmmというのを使えばC++でもいけるんですよね?
何かアドバイスをもらえればうれしいです。
330login:Penguin:2009/11/08(日) 22:48:08 ID:iZONJSh7
>>329
有利かどうかでいえば、一山いくらのプログラマとしても仕事に付けるかという観点ではC++/Java/PHP/VBあたりだろうな。
有利不利なんぞを気にするんなら間違ってもWindowsかWebアプリ、携帯以外見向きもしないほうがいい。GTK+なんかもってのほかだ。

マジレスするなら、C++にあまり慣れてないならCでGTK+やるのがいい。
ついでにPythonあたりも齧っとけばC+GTK+で面倒な部分もこなせるし、Linux方面のプログラムを開発するのに不自由はしないだろう。
331login:Penguin:2009/11/08(日) 23:24:58 ID:3wmSljPh
>>329
Cはスーパーマクロアセンブラ、C++になって高級言語の仲間入りっつー感じかな。
ある程度規模の大きなプログラム作るんなら、絶対C++の方が有利。
Cははっきり言って時代遅れ。C++は習得しておいた方がいいよ。
組み込み系なんかだと、また話は変わってくると思うが。

GUIツールキットだって、殆どのものがC++を念頭に置いて作られてる。
Cが標準でC++ラッパーを後付けしたのはGTK+くらいなもの。
まぁ、それだけ歴史が古く、練り上げられてるとも言えると思うけど。
332login:Penguin:2009/11/09(月) 00:10:55 ID:xrkj026G
>>330-331
どうも!
「C++に慣れてないなら」っていうのはオブジェクト指向が壁になるかもしれないってことですかねぇ。
一応JavaやPHPもちょこちょこやってるので、理解はしてます。

お二人の意見を合わせると、C++のほうがいいけど、慣れてなかったり自信がなかったりする場合は
Cにしておくのが無難ってとこですね。

もうちょっと考えてみます。
とても参考になりましたー!
333login:Penguin:2009/11/09(月) 00:31:21 ID:GPAwpvGp
>>332
オブジェクト指向が壁になるからではないよ。ほぼ1からC++とGTK+(とgtkmmの固有事情)やるよりはCとGTK+のほうが楽かなとね。
一応gtkmm以外にもJavaとPHP向けのバインディングがあるから、Cでやるのが面倒なようならそれぞれJava-Gnome/PHP-GTKで調べてみるといい。
334login:Penguin:2009/11/09(月) 01:09:23 ID:GiNGaxO1
gtkmmの固有事情くわしく

これから始めようと思ってるんだけど
>>132, >>318とか見ると気になる
335329:2009/11/09(月) 01:13:18 ID:xrkj026G
>>333
Cのほうがやっぱ楽なんですか。
といいつつC++も捨てがたいけど、>>334さんと同じくgtkmmの固有事情が気になります。

JavaやPHPのやつも存在は知ってましたが、CかC++でアプリを作れるようになりたいなぁと思ってて…。
336login:Penguin:2009/11/09(月) 01:49:16 ID:9bGbNsmw
>>333, >>334

>>132, >>318の言ってることについては心当たりないが、GtkTreeIterだかのバインディングにメモリリークのバグがあるとかいうブログの記事を見たことがある。
固有事情とは言いすぎた。GObjectの仕組みに加えてC++のオブジェクトとの絡みで素のGTK+より覚えることが多くなるかなと思った故の発言だ。

>>334
C/C++ともほぼ未経験なら日本語ドキュメントや和書もある素のGTK+のほうが理解しやすいのではと思ってC+GTKを勧めたが、単純にGTK+のウイジェットを使ってウィンドウアプリケーションを作るならgtkmmのほうが楽なはずだ。
素のGTK+をCで使用する場合、頻繁に型キャストのマクロを使うし、新たなウィジェットを作成する際にはGObjectの動的型システムを素で使うことになるからその点面倒だ。
gtkmmであればその点いくらか楽ができる。だが、ほかの言語バインディングでも使えるウィジェットを作成するとなると素のGTK+の動的型システムの流儀も触れる必要があるから、C++の知識に加えてGObjectの仕組みも知る必要がでてくる。

Javaをある程度使えて、GObjectの動的型システムには触れずにウィンドウアプリケーションを作りたいということであれば改めてgtkmmのほうを
337login:Penguin:2009/11/09(月) 09:55:18 ID:H/aMIY+I
わざわざPerlで扱ってる変態もいるしな
338login:Penguin:2009/11/09(月) 10:14:55 ID:LeSNQMah
>>335
俺は Python でやってる。
C を使っている gtk+ プロジェクトだったら C で書く。
そんなに違いはないし、簡単。

Cだとヘッダーにいちいちプロトタイプ宣言しなければならなかったり
毎回コンパイルしなければならないのが面倒だからPython使ってる。
楽チン。
339login:Penguin:2009/11/09(月) 15:19:07 ID:dkYv1Xb9
>>337
ぇー最近perlでGTK触りはじめたけど、変態じゃないやい><
340login:Penguin:2009/11/09(月) 15:40:43 ID:nWvFWYHF
とにかく完成するのが目的なら自分の好きな言語でいいじゃん。おれはRubyだぜ。
341login:Penguin:2009/11/09(月) 18:21:40 ID:EMO5BJHN
GTK+はバインディングが多いのがいいよね
342login:Penguin:2009/11/16(月) 16:13:58 ID:VCRzBqJE
なんだかんだ言って、Cのコードは寿命が長いんだよね。
コストベーシスで考えると、GTK+の場合は全てCで書いた方が
いいと思う。他のメジャーなソフトはほとんどCだし、
インテグレーションもし易いよね。
343login:Penguin:2009/11/16(月) 17:18:31 ID:gFc8JNPu
Cは初心者向けの本を昔読んで、当時はなんだか難しいなぁって思ったけど、
GTK+に挑戦したくてもう一度読んでみたら大して難しくなかった。

配列、関数、ポインタ、構造体の使い方の基礎がわかってたらGTK+を扱える?
この程度の知識で始めるのはなんか怖くて・・・。
344login:Penguin:2009/11/16(月) 17:21:51 ID:VCRzBqJE
GTK+なら、型が決まっているから、
ほんとに基本的な知識だけで十分だと思う。
マクロやプリプロセッサもよく使われているけど、
非常にシンプルなコンセプトだし、問題ないとおもう。
345login:Penguin:2009/11/16(月) 20:35:58 ID:gFc8JNPu
>>344
どうも!
今年中に始めよーっと!!
346login:Penguin:2009/11/16(月) 21:19:38 ID:tJXAF2DJ
もう「今年中」とかいうセリフが聞かれる時期になったか。
347犬山ぽち丸:2009/11/19(木) 00:11:09 ID:CpUTPEU6
Perl でこんな感じのを書いてみました。
ttp://pochimaru.seesaa.net/article/132639898.html

次ページ移動ボタンをクリックする事で次ページを表示したいのですが、
このままでは期待するように動きません。
現時点の表示をクリアして次ページを表示するにはどうしたらいいのでしょうか?
348login:Penguin:2009/11/19(木) 05:10:52 ID:kHCd9OdN
# perlって聞いた時点で見る気なくした
349login:Penguin:2009/11/20(金) 14:06:49 ID:TNyOV+9k
DrawingAreaをAspectFrameで包むと上下左右に、
GNOMEでは1ピクセル、
Fluxboxでは2ピクセル隙間が開くんだが、なんとかならないものか
350349:2009/11/20(金) 14:52:09 ID:TNyOV+9k
set_border_width(0)でもだめだった

python-gtk2 2.16.0
python-glade2 2.16.0
gtk 2.18
351login:Penguin:2009/11/21(土) 12:33:26 ID:cf2l5sy0
gtk2.18.3をubuntu9.10でやっているんですが
キーを押し続けている状態を知る事はできないんでしょうか?
今はkey-press-eventとkey-release-eventシグナルを使っているんですが
キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて
押し続けている状態を知る事ができません。
352login:Penguin:2009/11/21(土) 15:35:08 ID:zEcsEEOn
key-pressのあとにkey-releaseがなければ押し続けていることになる
353login:Penguin:2009/11/22(日) 01:06:56 ID:EckaNW4z
>キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて
押しつづけているのにrelease-eventがくるとかキーボードぶっこわれてるんじゃね
354login:Penguin:2009/11/22(日) 08:57:13 ID:OlBHF5u9
>>351
Xのレベルではそれが通常の動作(モディファイアキー(の一部)以外では)。
Xはautorepeat時にKeyReleaseと続くKeyPressでタイムスタンプを同一にして
送ってくるので、GDKはそれを利用して>>352のように見せるコードが
一応入ってはいる、が、環境や同時に利用するプログラムといった条件によっては
それが働かないみたい。
自分の環境だけ考えるならGDKの該当部分に手を入れて常にその動作をするように
してしまうのが簡単。そうでないならやはり同様に次のイベント
(gdk_event_peekで得るのかな)とそのタイムスタンプを見て判断するんじゃないかと。
355login:Penguin:2009/11/22(日) 11:40:29 ID:xNfLAKy+
>>352
>>353
>>354
レスありがとうございます。
gdk_event_peekはnullが返ってきたのでダメでしたが
gdk_event_getはタイムスタンプ同一のメッセージがしっかり返ってきました。
おかげさまで上手くいけそうです。
356login:Penguin:2009/11/22(日) 22:53:53 ID:LzN5AhP5
>>347
こんな感じでどうでしょう?

163a165,168
> my $currentObject = $scrolled_window->child;
> if($currentObject) {
> $currentObject->destroy;
> }
204a210
> $drawable->show;
224a231
>
357犬山ぽち丸:2009/11/26(木) 19:27:51 ID:bDLkSh53
>>356
動かしたいように動かす事が出来ました、ありがとうございます。
とても基本的なところで躓いてしまってたみたいで、お恥ずかしい限りです。
358login:Penguin:2009/11/27(金) 20:56:42 ID:w3OKtepz
GtkWidget
↑ ↑
GとWが大文字
これに気付くのに4日掛かった
コンパイルが通って空のウィンドウが表示されたときは
雄叫び上げちゃったよ。
359login:Penguin:2009/11/27(金) 21:30:47 ID:RzRcFxle
www

とりあえず、なんだ、おめでとう
360login:Penguin:2009/11/27(金) 21:51:12 ID:HBGtWPJy
Debianスレで GTK+ でウィンドウ出すのに四日かかったって言ってた人かw
361login:Penguin:2009/11/29(日) 00:46:08 ID:guffPLRY
おめでとう、マジで
さぁ早くシグナルをコネクトしまくる作業に戻るんだ
362login:Penguin:2009/12/01(火) 22:14:30 ID:sy3qzyYB
>>361
ぬるぽっ!
363login:Penguin:2009/12/01(火) 22:23:34 ID:xoJE4V4A
>>362
ガッ
って言ってほしいのね。
もぉ、寂しがり屋さんなんだからぁ。
364login:Penguin:2009/12/05(土) 20:49:17 ID:CO55p0ew
なんでこのスレ過疎ってんの?
プログラマー不在のスレなの?
365login:Penguin:2009/12/05(土) 21:08:39 ID:Gmpm8vF/
>>364
そう思うならまず率先して何かを作って公開してみては如何でしょうか?
366login:Penguin:2009/12/06(日) 00:50:56 ID:fNpRY7Ok
話題がないだけでしょ。
367login:Penguin:2009/12/07(月) 17:19:37 ID:CENTWTgC
良くも悪くも枯れてるからな
368login:Penguin:2009/12/07(月) 20:01:28 ID:LkAo4E7O
gtk2hsで書いてみたけど思ったより使いやすかった
369login:Penguin:2009/12/13(日) 11:19:39 ID:naHBDIjP
gtkで外部装置から受信した温度データをグラフ描画するソフトつくってる。
左3/4が描画領域で残りに現在時刻や表示倍率の設定がある。

連続してデータ受信すると、時刻表示のタイマーがとまったり、倍率設定
のコンボボックスが操作できなくなるので、スレッド分けしようと思うのだけど
expose_eventを別スレッドにすることって可能?
370login:Penguin:2009/12/13(日) 11:42:32 ID:P93DdDFa
できそうな気がするけど。
とりあえずやってみたら?
371login:Penguin:2009/12/16(水) 20:46:38 ID:laS/Dg3j
>>365
作る気になれるようなことが必要なのではないですか。
372login:Penguin:2009/12/16(水) 20:51:22 ID:dPFj9y5E
>>369
すごいですね
勉強のためにぜひソースを見せて頂けないでしょうか?
373login:Penguin:2009/12/16(水) 20:53:19 ID:dPFj9y5E
もしくは、ソースリストを公開しているwebページを
ご存知でしたら教えてください。
374login:Penguin:2009/12/16(水) 20:54:06 ID:6soPE05o
    ∧__∧
    (´・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"
375login:Penguin:2009/12/16(水) 21:47:42 ID:c63j0iz9
受信を別スレッドでやるのが普通じゃないの
376login:Penguin:2009/12/16(水) 22:44:30 ID:Q8cS+VLW
ブロックする可能性のある処理は別スレッドにしないと止まる
377login:Penguin:2009/12/16(水) 23:39:53 ID:jaaomSx0
Exposeを別スレッドって、ぷっ。
さすがLinux。
378login:Penguin:2009/12/17(木) 02:29:15 ID:F8Jdsro2
何がおかしいのかよくわからん。
379login:Penguin:2009/12/26(土) 01:54:27 ID:XiSC9KS7
GTK+の本を買おうと思うんですけど、この2冊だとどちらがいいですか?
・入門GTK+
・Foundations of GTK+ Development

プログラミングはCの基礎がわかっている程度です。
PHPもやってます。
380login:Penguin:2009/12/26(土) 13:18:25 ID:6MLS1ve1
両方買えばいいじゃない。
あと、入門GTK+の方は作者がホームページで
本の内容を公開し始めてる
381login:Penguin:2009/12/26(土) 14:29:39 ID:YM2nDrzN
Foundations of GTK+ Development は一部 google books にでてる
382379:2009/12/27(日) 00:54:04 ID:HfaPMpb7
>>380
両方買うと、結局一冊は読まないままになったりするタイプなので…。
あと、書籍代はケチるべきじゃないと思いますが、深刻な金欠状態なのです。

入門GTK+の作者サイトでの公開について、情報ありがとうございます。
休暇中に目を通してみようと思います。

>>381
Amazon USのレビューで「ネット上で読める」と書いてあったので、どこにあるのか気になってました。
書店になくて立ち読みできなかったので、Google Booksで読んで判断します。

どうもありがとうございました。
383login:Penguin:2009/12/27(日) 08:12:49 ID:Ri5kV8GM
GTK+は公式チュートリアルが結構充実している方だと思うので、
それ読めばとりあえずリファレンスとサンプル眺めつつ使えるようになる。

それでも本が欲しくなるならあるウィジェットの使い方を
詳しく書いていて欲しいだとかマルチスレッドとの兼ね合いが
知りたいだとか(あまりいい例が出てこなくてすまん)
求めるものがはっきりしてくると思うので、
それから本を選んでもいいんじゃないだろうか。
384379:2009/12/27(日) 20:27:25 ID:HfaPMpb7
>>383
公式チュートリアルのことを知りませんでした…。
ダウンロードできたので、スマートフォン等にコピーして移動中でも読めそうです!
プリントアウトして持ち歩くのもいいかもしれません。
最終更新日が2002年10月27日と古いんですけど、問題ないですよね?

書籍を買ったほうが最後まで読みつづけようという意欲が持てる気がしますが、
とりあえず公式チュートリアルを読もうと思います。

ちなみに「Foundations of GTK+ Development」はGoogle Booksで見てみたら
とても良さそうでした。
「入門GTK+」のほうは著者ページで見つからなかったです・・。
385login:Penguin:2009/12/28(月) 02:58:56 ID:CtQUEG8Y
> 最終更新日が2002年10月27日と古いんですけど、問題ないですよね?

……?

公式チュートリアルは
http://www.gtk.org/documentation.html でズバリ The Official Tutorial といってる
http://library.gnome.org/devel/gtk-tutorial/stable/
だよ。
GTK+のソースコードのtarball中にも入ってる(docs/tutorial/以下)。
386login:Penguin:2009/12/28(月) 07:38:54 ID:RlHoBGgo
>>385
Tutorial Availabilityのページにあるリンク(ftp://ftp.gtk.org/pub/gtk/tutorial)から
ダウンロードしました。
387login:Penguin:2009/12/28(月) 11:47:38 ID:T0tfWrHc
自分でいいと思ったならそれ読め。もう知らん。
388login:Penguin:2009/12/28(月) 22:21:50 ID:Uh78zlUy
そう言うな。明日になればまたみんな仲良しななしさん
389login:Penguin:2009/12/28(月) 22:55:34 ID:AK9LsQvN
>>387 何?どうしたの?
390login:Penguin:2010/01/09(土) 18:48:59 ID:khh4I0eb
今日からGTK+を始めてみた
今までwindowsのvisual stdioしか使ったことなかったから、パスさえ通ってりゃ
#g++ hello.cpp
だけでコンパイルをやってくれると思っていた
今日一日かかって`pkg-config --cflags --libs gtk+-2.0`を知って
ウィンドウを出せた
疲れた
391login:Penguin:2010/01/10(日) 13:16:43 ID:3oa4ldyN
VisualStudioだってオプションからディレクトリの設定しなきゃ
ビルドすらままならないだろうに、何言ってんだコイツ

ましてやコマンドラインからCL.exe呼び出すんなら、vcvarsall.batなり
vcvarsall.batで設定される環境変数群を、予めユーザー環境変数に定義して
おかなければCL.exeもg++と同じエラー吐いて止まるだろうに・・・
392login:Penguin:2010/01/10(日) 14:58:37 ID:zlmG+3hJ
pixmapの背景色を黒くしたキャンバスを作って
その上に画像と文字を描画してて、文字は白

これに対してニコ動のコメント表示/非表示みたいなことをやりたい

文字を描画するときのみXORモードで書いてるんだけど
背景の黒の上に書かれた物は消えるけど、画像の上に書かれた
物は黒抜き去れて残ってしまう

説明わかりにくいかも知れないけど、なんか良い方法無いかな
393login:Penguin:2010/01/13(水) 03:10:04 ID:hKXsU3qa
文字を描画しないだけでいいんじゃないの?
394login:Penguin:2010/01/13(水) 13:45:44 ID:rT8A3kXe
>>390
チュートリアルとか見てないの?
395login:Penguin:2010/01/14(木) 01:41:29 ID:2htHqmwQ
空気の福田はともかく、徳井が苦手でねぇ…
396login:Penguin:2010/01/15(金) 10:31:57 ID:2tKD4R7l
GTK+を使って記述されているソフトとしては
gimp以外だとどんなものがありますか?
ソースリストを読んで勉強したいのですが
397login:Penguin:2010/01/15(金) 11:34:43 ID:+6ILVUJ5
398login:Penguin:2010/01/16(土) 13:06:47 ID:st13uJnk
2chブラウザのJDとか、画像ヴューアのgqviewとか。
399login:Penguin:2010/01/23(土) 07:49:03 ID:c81zxfOz
ツールバーにウィンドを表示しないようにするにはどうすればいいの?
400login:Penguin:2010/01/26(火) 09:24:59 ID:WUy9SOAf
 linux 初心者です。C言語はバリバリです(ウィンドウズで)最近、fedora12 に乗り換え、システムを移植中なんですが、
ウィンドウ関連のところで、GTK+なるものが必要とのこと。そこで、インストールしましたが、
実際のソースコードをコンパイルしてもエラーがでます。
 勉強不足の所をご指摘いただけないでしょうか?

gtk+ インストール
yum -y install gtk+
でインストールしました。 800KBぐらいだったと思います。
そこで、次のコードを emacs でコンパイルします。
#include <gtk/gtk.h>

int main( int argc, char *argv[] )
{
GtkWidget *window;
gtk_init( &argc, &argv[] );
window = gtk_winidow_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_show( window );
gtk_main();

return 0;
}
すると、error : gtk/gtk.h: そのようなファイルやディレクトリはありません。
その他これに関連するエラーがでます。
gtk/gtk.h が無いのか、と思って、
もう一度 gtk+ をインストールしようとすると、
gtk+-1.2.10-69.fc12.i686 はインストール済みか最新バージョンです
何もしません
とでます。
...よろしくお願いします。
401login:Penguin:2010/01/26(火) 11:26:21 ID:TXiGdVqu
チュートリアルどおりやれば躓かないとおもうんだけどな
gtk2, gtk2-develを入れて
gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0`
402login:Penguin:2010/01/26(火) 16:11:56 ID:R1nywYDP
>> 401
 遅くなりましてすいません。返信ありがとうございます。
うまくいきました。
ウィンドウが表示されたとき、感動しました。
でも、emacs からはコンパイルできませんでしたので、リンカーあたりの
設定かな?と思っています。
 何はともあれ、ありがとうございました。
403login:Penguin:2010/01/26(火) 16:57:00 ID:R1nywYDP
またまたお願いいたします。
linuxにおいて、
windowsの
SetCursorPos()
GetCursorPos() に相当するものはありますか?
参考リファレンスなど紹介してもらえれば助かります。
404login:Penguin:2010/01/26(火) 17:26:41 ID:Up0ueX3p
405login:Penguin:2010/01/26(火) 18:04:33 ID:R1nywYDP
>>404
 返信ありがとうございます。
...勉強します。
406login:Penguin:2010/01/26(火) 18:11:45 ID:OKgnAGh0
>>402
pkg-configコマンドが何なのか調べるんだ。
407login:Penguin:2010/01/28(木) 14:40:04 ID:YXchBGq5
はじめまして。GTK初心者です。

困っていることがあります。
gtk_init()でハングするんです。

1. gtk_init()を手動でコール出来るようプログラミングし、rc.localでそのプログラムを起動。
2. xwindow(gnome)ログイン後にgtk_init()をコールさせる。

上記の2の時点でgtk_init()でハングしているらしいです。
(gtk_init()下行のログが出力されない)

原因や対処法をご存知の方いらっしゃいませんか?
408login:Penguin:2010/01/28(木) 18:04:22 ID:VFHNmy96
>>407
突っ込みどころが3点ほど。

・rc.localに登録して起動し、さらにログインした後にも起動・・・?

・gtk_init()だけ実行するプログラムを作ったの?
 だとしたら壮大な勘違いをしている。gtk_init()関数が何をする関数なのか調べるんだ。

・「ログ」とは何のログ?ハングしているらしい、では分からないのでソースをUPするんだ。
409login:Penguin:2010/01/28(木) 18:34:10 ID:YXchBGq5
>>408
ありがとうございます。すみません、説明不足でした。

ちょっとソースは長いので文書のみで失礼します。

プログラムは、rc.localで起動した時点ではgtk_init()をコールしない作りにしてます。
その後、ログイン後にコンソールから別プログラムを通してプロセス間通信によりコマンドを送信、
そしてコマンドを受信した時点で gtk_init()をコールさせる形にしてました。

ログは、
 printf("call gtk_init\n");
 gtk_init();
 printf("call end\n"); ★
のようにして、★が出力されない感じです。

その後の調査で、どうやら rc.local起動させた場合、環境変数 DISPLAYなどが
全く設定されていないようです。

そこら辺に問題有りかと思っているのですが、なにぶん、勉強不足でして。
時間も無いので質問させて貰った次第です。
410login:Penguin:2010/01/28(木) 18:40:22 ID:A3FmJC2O
DISPLAYも何も、Xの起動はrc.localより後なんだぜ?
プログラム分けるんじゃ駄目なんかい
411login:Penguin:2010/01/28(木) 18:44:27 ID:0EFvnz24
時間も無いので
時間も無いので
時間も無いので
時間も無いので
時間も無いので
412login:Penguin:2010/01/28(木) 19:24:50 ID:bFXQct0B
>>409
「GTK初心者」と言うよりLinux&プログラミング初心者のようですね。

貴方にGTKはまだ早いです。環境変数やXの基本が理解できていないと
説明されても分からないと思いますので出直してきて下さい。
413login:Penguin:2010/01/28(木) 19:30:37 ID:uG/wS28i
お金も無いよ
お金も無いよ
お金も無いよ
414login:Penguin:2010/01/28(木) 19:32:04 ID:YXchBGq5
>>410
ありがとうございます。
inittabで初期化レベルを分けていることもあり、
てっきりrc.local前に起動処理が走っているかと勘違いしていました。
お恥ずかしい。

>>412
おっしゃるとおりです。
出直してきます。
415login:Penguin:2010/01/28(木) 21:55:00 ID:WU2RMXov
>>414
DISPLAYが設定されてなくて、Widget使わないなら、
GObject関係を使うためだけなら、g_type_init ()すれば良いよ。
有名なエラーが出るからgtk_init()使ったってエスパーしてみた。
416login:Penguin:2010/02/07(日) 16:35:02 ID:jjKybwb6
書籍「入門GTK+」のP31のプログラムを打ち込み、何度も確認したのですが、どうしても下記のエラーが出てしまいます。
何が間違っているのか、ご教示願います。
gtk-sample.c: In function ‘create_menu’:
gtk-sample.c:64: error: ‘acitons’ undeclared (first use in this function)
gtk-sample.c:64: error: (Each undeclared identifier is reported only once
gtk-sample.c:64: error: for each function it appears in.)

gtk_action_group_add_actionsの値でエラーが出るようです。関係する記述を確認しましたが問題ありません…
417login:Penguin:2010/02/07(日) 17:08:07 ID:KhA+E7Mu
エラーメッセージを読んでみましょう
acitonsが宣言されていませんよ
actionsと間違えていませんか?
418login:Penguin:2010/02/07(日) 17:18:05 ID:jjKybwb6
>417さん
ごめんなさい、本当に気づきませんでした。エラー文を読んでいたのに…ありがとうございました
419login:Penguin:2010/02/09(火) 01:35:25 ID:gRID6Pu9
ググれ秀才
420login:Penguin:2010/02/10(水) 20:29:31 ID:y7MwWf/g
gtkmmをこれからやってみようと思ってるけど、
入門GTK+を読みながらC言語で練習するより
最初からgtkmmでC++使ったほうがいい?

gtkmmの入門書がないみたいなので、
取っかかりとして入門GTK+を候補にしてるんだけど…。
421login:Penguin:2010/02/11(木) 13:48:24 ID:AIMyey0J
>>420
最終的にC++で書くのが目的なら、↓みたいなところがあるからC++で書けばいいんじゃない。
gtkまわりの日本語の情報が少ないから、言語は違うけどたまに参考にさせてもらってるよ。
http://book.geocities.jp/gtkmm_ja/docs/tutorial/html/index.html
422login:Penguin:2010/02/12(金) 15:44:26 ID:DJstgHYM
>>421
そのサイト見てみます。
ありがとう。
423login:Penguin:2010/02/17(水) 19:33:47 ID:Ozbv3EUx
GTK+ 1.2 で作った古いツールを 2.0 で動くように手直ししてるんですが、とりあえず Makefile の中で

# GTK+ 1.2
CFLAGS = `gtk-config --cflags`
LIBS = `gtk-config --libs`

# GTK+ 2.0
CFLAGS = `pkg-config --cflags gtk+-2.0` -DGTK_ENABLE_BROKEN -DGTK_WINDOW_DIALOG=GTK_WINDOW_TOPLEVEL
LIBS = `pkg-config --libs gtk+-2.0`

てな感じでお茶を濁して動かしているんですが、ソースを全面的に 2.0 対応するコストって
どれほどでしょうか?
150本ほどのちまちましたツールがあって、2.0 で起こしたツールが2割程度、後の8割は、
前記のとりあえずリビルドです。
424login:Penguin:2010/02/17(水) 19:42:41 ID:TkV44uU+
1.2のランタイムぐらい入っててもいんでない?
425login:Penguin:2010/02/21(日) 14:06:19 ID:pTXZtDIq
ちょっと自前で描画しようとすると、gdkとcairoが混在していて
煩雑としてるなぁ。
少なくともGDKの描画関連のAPIはもういらないだろう。
3.0辺りでばっさり消すとかしてもいいんじゃないか。
426login:Penguin:2010/03/11(木) 00:46:30 ID:Vm2wsjJM
GTK(+glade)を使ったあるプログラムを
・HP-UXサーバ
・RedHat Linuxサーバ
でそれぞれコンパイルおよび動作させ、
別のLinux端末に表示させたところ、
表示や動作自体は問題無いんだけども、
エディットボックスへの入力で
RedHat Linuxの方は日本語入力を受け付けてくれません。
ちなみに、それぞれに入っているGTKはともに1.2です。
SCIMとかの環境は、一見同じっぽいですが・・・・
どこか見るべき箇所はあるでしょうか?

ちなみに、glade自体も
HP-UXは日本語入力を受け付けてLinuxサーバの方は
日本語入力を受け付けてくれません。
gladeの問題なんですかねぇ・・・?
427login:Penguin:2010/03/12(金) 16:52:20 ID:sdgtdQtC
Gtk::Dialogの派生クラスを作成してある条件の時表示させています。
表示後一定期間経過したら自動的にそのダイアログを閉じたいのですが、
どうすればいいのでしょうか。
特にダイアログにこだわっているわけではありません。
何かメッセージを表示 -> 一定時間後に自動的に消去
が実現できればいいです。
よろしくお願いします。
428login:Penguin:2010/03/12(金) 19:39:46 ID:37m6gC+E
>>427
g_timeout_add関数ではだめでしょうか?
429login:Penguin:2010/03/12(金) 19:41:48 ID:WSSuZVVD
>>428
そこはらめぇーーーー
430login:Penguin:2010/03/16(火) 23:40:15 ID:u16nCOLZ
gtk_widget_drawを呼ぶとたまにアプリが落ちる
調べたらgtk2では非推奨になってた
かわりにgdk_window_invalidate_rect使えって書いてあったから
それ使うようにしたら、exposeイベントハンドラに入ったり入らなかったりするようになった

431login:Penguin:2010/03/19(金) 03:10:05 ID:pTXFbkuH
Xawで作られたソフトのWidgetをGnomeテーマのスキンっぽく
変える方法ってありますか?Xaw3dみたいな
432login:Penguin:2010/03/22(月) 18:34:33 ID:gITq0f63
>>427
作ってみた。たぶん、427はここを見てないだろうけど
#include <gtk/gtk.h>

gboolean timeout(gpointer data){
gtk_dialog_response( GTK_DIALOG(data), GTK_RESPONSE_ACCEPT );

return FALSE;
};

int main (int argc, char **argv){
guint tag;
GtkWidget *dialog;

gtk_init (&argc, &argv);

dialog = gtk_dialog_new_with_buttons ("My dialog", NULL,
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);
tag = g_timeout_add_seconds( 2, timeout, dialog );
gtk_widget_show_all (dialog);

gtk_dialog_run(GTK_DIALOG(dialog));

g_source_remove(tag);

return 0;
}
433login:Penguin:2010/05/01(土) 02:23:02 ID:ZoBub0ZC
あるデータファイルをどんどん読んで処理しながら、1秒に1回その途中経過を
Windowに表示する、みたいなプログラムを書こうとしています。

Windowに表示する部分は、gtk_main()を呼ぶ前に、g_timeout_add(1000, draw, NULL)
のようにしてタイムアウト関数を使えばいいとして、データファイルを読み込んで
処理する部分は、どこに書けばいいのでしょうか?
スレッドとかを使わずにやりたいのですが。
434login:Penguin:2010/05/01(土) 18:51:28 ID:lTmE6Ym2
g_io_add_watchとか?
435login:Penguin:2010/05/01(土) 21:52:51 ID:5eA3cNHe
LinuxでGTK+やってる人はWindowsでも主にGTK+で書いてる?
WindowsのAPIは使いませんって人いるのかな。
436login:Penguin:2010/05/02(日) 00:32:37 ID:Bdebw0Wa
そもそもWindows使いません。
437login:Penguin:2010/05/02(日) 06:00:37 ID:J+HCMgwe
>>433
スレッドを使わない方がめんどくさいと思うんだけどね。
ずーっと処理し続けて一秒に一回描画するって事だと
その処理の間は入力受け付け無くてもOK?
その為のスレッドなんだけどなぁ。

シングルCPUでもそう言うことが出来るのがスレッドの良いところ。

それでもスレッドを使いたくないというなら、こまめにシグナル飛ばしっこ
するしかないと思う。
438login:Penguin:2010/05/02(日) 21:48:38 ID:uNQYZGNa
簡単なシミュレーション用のGUIラッパ作りたんですが、
Qt4とgtkmmどっちが作るの楽ですか?
どっちもバグてんこ盛りそうで、javaやM$畑に生まれたかった
439login:Penguin:2010/05/02(日) 22:14:42 ID:WSA7U0rv
>>438
マジでバグテンコ盛りだからいまからでも上にJava+Swingあたりでやらせてくれって掛け合ったほうがいい。
ちゃんと上にQtもGTK+もバグテンコ盛り過ぎてプロダクションレベルに使えないって直訴するんだぞ。
440login:Penguin:2010/05/04(火) 08:25:25 ID:i62yYai1
>>438
vala とかどうか。バグが多いかどうかはプラットフォームに
よる部分も多いと感じるが…win ならC#で組むのが楽だとは思う。
441login:Penguin:2010/05/04(火) 09:52:32 ID:gZYcN+Ue
>> 439
使いこなせていないだけじゃないの。
442login:Penguin:2010/05/04(火) 21:20:07 ID:C0XJN+7X
なんでこのスレ、ム板じゃないの?
SDLとかはちゃんとム板でやってるのに
なんでGTKはのけ者なの?
いじめに合うの?
443login:Penguin:2010/05/04(火) 21:28:25 ID:9ORU/lJS
Gtkプログラミング on Windows!!!
ってスレがム板にあるけど?
http://pc12.2ch.net/test/read.cgi/tech/1147024203/
444login:Penguin:2010/05/04(火) 21:36:12 ID:C0XJN+7X
窓専用じゃん。
445login:Penguin:2010/05/04(火) 21:47:13 ID:9ORU/lJS
自分で立てればいいぢやん
446login:Penguin:2010/05/05(水) 17:49:24 ID:NLGDqQjm
まぁええやんここにも有っても
どうせ両方見てるし
447login:Penguin:2010/05/07(金) 23:05:29 ID:ZSmA/qjk
>>433
g_idle_add関数がいいかも。

>>435
WindowsでもGTK+を利用してるけど、必要ならWinAPIも利用するよ
ちないに、LinuxのGTK+とWindowsのそれとは挙動がちがうことがあるから
注意が必要

448犬山ぽち丸:2010/05/22(土) 13:39:02 ID:CFJ0lXX6
以前ここで質問してご教示いただいた事を参考にして、
縦書きビューワーを作ってみました。

ぽち*ろぐ: ぽちたて 0.1.0 をリリースしました
ttp://pochimaru.seesaa.net/article/150542330.html
449login:Penguin:2010/05/25(火) 09:28:21 ID:wq6kVR7V
>>448
おめ!
450login:Penguin:2010/06/16(水) 00:53:38 ID:U5l5xiNY
Xサーバーのdepth=15bit下において以下のコードで色がおかしくなります。(例えば白がマゼンタぽくなる)firefox,gimp上やdisplay -window root では正常に見えます。
こちらの書き方が正しくないのでしょうか?それともgdk-pixbufの15bitでの処理が正しくないのでしょうか16,24bitでは正常に見えます。
(xorg-server-1.7.1,gtk+-2.21.0)

#include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>

int main(int argc,char *argv[]){
Display *dpy;
int scr;
Window root;
int depth;
GC gc;
GdkPixbuf *pixbuf;
gint imgw,imgh;

dpy = XOpenDisplay(NULL);
scr = DefaultScreen(dpy);
depth = DefaultDepth(dpy,scr);
root = RootWindow(dpy,scr);
gc = DefaultGC(dpy,scr);

g_type_init();
gdk_pixbuf_xlib_init_with_depth(dpy,scr,depth);
pixbuf=gdk_pixbuf_new_from_file(argv[1],NULL);
imgw=gdk_pixbuf_get_width(pixbuf);
imgh=gdk_pixbuf_get_height(pixbuf);
gdk_pixbuf_xlib_render_to_drawable(pixbuf,root,gc,0,0,0,0,imgw,imgh,XLIB_RGB_DITHER_MAX,0,0);
gdk_pixbuf_unref(pixbuf);
return 0;}
451login:Penguin:2010/06/29(火) 08:21:44 ID:7ZTRAVs/
この板の奴には分からんだろ
452login:Penguin:2010/06/29(火) 12:06:30 ID:SCBkgPqa
gdk-pixbufの新しいバージョンとソースくらは確認できるだろ?
453login:Penguin:2010/06/29(火) 13:07:25 ID:7ZTRAVs/
くちごたえだけいっちょまえ
454login:Penguin:2010/07/01(木) 20:38:54 ID:ff1chlOv
またgdk-pixbuf分離したのかめんどくせえな
455login:Penguin:2010/07/08(木) 13:05:20 ID:kV57IwAm
あらっ?PPMの色反転してね?
456login:Penguin:2010/07/08(木) 21:04:54 ID:kV57IwAm
ああ勘違いだった、反転フィルタ効いてた
457login:Penguin:2010/07/21(水) 21:06:32 ID:eYcae5GB
ValaでGTK+ vs C++でQt
の構図に持って行きたい。
458login:Penguin:2010/07/22(木) 01:58:11 ID:PbDDQq9y
valaつかうぐらいなら、gtk#つかうだろ
459login:Penguin:2010/07/22(木) 10:25:07 ID:B8+a86z/
いやいや、Valaは良い言語だよ。
実行時に余計なライブラリとか要らないし。
460login:Penguin:2010/07/22(木) 18:59:19 ID:P6pQJgjf
gtkbuilder対応もうれしいですね。 > vala
461login:Penguin:2010/08/09(月) 22:35:54 ID:FqMSbruc
クリックする度に画像を切り替えようとして以下のようにしたところ、
2枚目の画像は表示されませんでした。
2枚目の画像を表示するには他にどのような処理が必要でしょうか?

#!/usr/bin/ruby
require 'gtk2'

window = Gtk::Window.new
window.signal_connect("destroy") {Gtk.main_quit}

image = []
image[0] = Gtk::Image.new("test.s/sample7.jpg")
image[1] = Gtk::Image.new("test.s/sample8.jpg")
i=0

event_box = Gtk::EventBox.new
event_box.add(image[0])
event_box.events = Gdk::Event::BUTTON_PRESS_MASK
event_box.signal_connect("button_press_event") {
event_box.remove(image[i])
i += 1
i %= 2
event_box.add(image[i])
}

window.add(event_box)
event_box.realize
event_box.window.cursor = Gdk::Cursor.new(Gdk::Cursor::HAND1)

window.show_all
Gtk.main
462login:Penguin:2010/08/10(火) 19:44:28 ID:fAaz4maQ
>>461

event_box.add(image[i])
event_box.show_all
とか
463login:Penguin:2010/08/23(月) 22:46:19 ID:UjVUUhyV
gtkでサブディスプレイにウィンドウを表示するのはどうやればいいんでしょう?
メインがlocalhost:0.0でサブがlocalhost:0.1になってます。
464login:Penguin:2010/08/24(火) 05:56:03 ID:+4na7v6g
それはX用語(GTK+でも)でスクリーンというので
GtkWindowのscreenプロパティに表示したいgdkScreenを入れるんじゃないかな?
465login:Penguin:2010/09/06(月) 00:37:50 ID:DZ6K0yAz
GTK#なのですが、.NETのWinFormsでいう、
SuspendLayout()

ResumeLayout()
はどうすればいいでしょうか?
466login:Penguin:2010/09/29(水) 06:17:42 ID:Xcx5gfP/
質問です。
GtkBuilderで定義したウィンドウを複数表示するにはどうすればいいでしょうか?
一つだけだったら、gtk_builder_get_objectで取得して簡単に表示出来ます。
467login:Penguin:2010/09/29(水) 07:30:54 ID:gR2Kn98z
>>466
GtkBuilder を複数生成すればいいんじゃないの?
自分がよくやるのは、GtkBuilder を複数生成して gtk_builder_add_from_string で定義を取り込み
468login:Penguin:2010/09/29(水) 08:32:23 ID:mEXXgo8J
Gtkビルダー?マイクソソフトのC++ビルダーみたいな感じか?
と思って検索しようと思ったが堪えた
469login:Penguin:2010/09/29(水) 18:41:46 ID:jeMZvjSG
GTK+のRAD開発ツールってgladeじゃん
470466:2010/09/30(木) 03:18:19 ID:oEA2zNJX
>>467
ありがとう。その方法でやってみる。

>>468
GtkBuilderは、以前のlibgladeにあたるもの。
それに、C++BuilderはMSじゃないぞ。

>>469
もちろん、Glade使ってXMLを作成してるよ。
それを読み込むのがGtkBuilder。
471login:Penguin:2010/10/03(日) 23:46:11 ID:y5C9HzxD
cairoを使って書かれたゲームとかありますかね?
簡単なものでいいのですが
472login:Penguin:2010/10/04(月) 11:18:38 ID:9wJE7nSN
>>471
http://uproda.2ch-library.com/299097YiT/lib299097.c
ダウンロードするとlib299097.cというファイルが出来るからこれをgccでコンパイルすればいい
コンパイルはディレクトリを移動してから
gcc lib299097.c -o cairo_game `pkg-config --cflags --libs gtk+-2.0`
と入れれば通るだろう
./cairo_game
でゲーム開始だ
473login:Penguin:2010/10/07(木) 23:33:21 ID:bzqpJyzy
gtkmm使ってもなんか書きにくい
Python使ったら楽かな
474login:Penguin:2010/10/07(木) 23:58:28 ID:wQWwIsB3
>>473
余程のものじゃない限り、性能的に問題とはならないと思うから、スクリプトは便利だよ。
まぁ、俺は ruby なんだけど。。。
475login:Penguin:2010/10/08(金) 13:40:09 ID:BvF1QbPR
PythonならC++並みに開発環境整備されているし、Ubuntuのアプリも多くが
Python + gtk で開発されているよ。
476login:Penguin:2010/10/08(金) 13:41:57 ID:yKf5ENPb
>>474
( ゚∀゚)人(゚∀゚ )ナカーマ
477login:Penguin:2010/10/08(金) 22:26:59 ID:ncsyc+ZE
PerlとPythonなら どっちがいいですか?
478login:Penguin:2010/10/08(金) 22:51:53 ID:lqYDv+Jp
gtkの開発するなら圧倒的にpython、としか言えんだろこのスレじゃ
479login:Penguin:2010/10/08(金) 22:53:13 ID:vwfmsqfo
CだろJK
480login:Penguin:2010/10/08(金) 23:25:32 ID:RoG/rFqo
「PerlとPythonならどっちがいいですか?」
「CだろJK」

ぱねぇっす! やっぱハッカーのひとはぱねぇっす!!
481474:2010/10/08(金) 23:53:29 ID:YC1HKIpZ
ruby 以外のバインディングの事を知らずに書くけど、今時はどの言語でも GtkBuilder を使えるだろうし、
どの言語がいいか何て、自分にどの言語が合ってるか次第なんじゃないの?
482login:Penguin:2010/10/09(土) 00:01:38 ID:BvF1QbPR
>>481
C/C++ 以外では、
gtkが公式にサポートしているのがPython
Gnomeの公式アプリに使われているのがPython
UbuntuやFedoraでデフォルトでインストールされているのがPython
Anjuta等GTK系開発ツールのサポートが一番充実しているのがPython
483474:2010/10/09(土) 00:20:06 ID:HCJJF52G
>>482
おぉ、Python は gtk で公式にサポートされてるんだ。
それは、いいねぇ。
ruby も入れてくれんかな。
484login:Penguin:2010/10/09(土) 04:01:15 ID:mDHE/CAa
何でみんなPythonが好きなんだ?
忠誠を誓ってるGoogle様が使ってるから、好きなふりをしてるだけか?

そうはいっても本当はPerlが大好きなんだろ?
485login:Penguin:2010/10/09(土) 06:24:12 ID:Xt3OjFd+
日本のRuby右翼と同じだと思われたくないから
486login:Penguin:2010/10/09(土) 13:25:25 ID:JGqpR3KW
Perlは3日たったら自分の書いたコードでも解読に苦労することがある。
Pythonは30分チュートリアルを読むだけで他人の書いたコードでもスラスラ読めることが多い。
487login:Penguin:2010/10/09(土) 13:39:33 ID:3AdxyjT6
それでもボクはCがいい
488login:Penguin:2010/10/09(土) 13:59:17 ID:pWZySSkO
            /
        ,'          i                       |
        |   !   |    |     i      |   |     i       |
        |   |   |    |     |       |   |   」_    . :|
        |   |   | : : : :|: :    │ i  . :|  . :|  「 { l:. . : . : . :|
        │  │  : :|: : i _ノ: :  : : ヽ、: :|: : : : |: : : : :/ }| | |: : : : : : :|
        〈::|   │: : 斗‐ 「 │: : : : :.:.| 「:.T ー-|- : : :| l|. l lヘ: : : : : :|    まあ、いやらしい。
          \:::L_」─‐-ンt云、└─- -┘ ィ乏ァ-.、─-:l  l. | ', ヽ: : : : |
         r.、:、:::∧ l∧イ;::::}`         ´{;イ:;::::::}ヾ| }  l  l  } 〉: : : :|
         | |:::::::::ヘ 弋;r:ユ           辷_;:r:.ソ l/  |  |  |,/: : : : :|
         | {、:::::::: ', ´               ̄ /      /│:. : : :|
         ヽ ヾ::::::::::!  " "          " "/          ノ:.: : : : l
          |ヘ ヽ::::::}、     、         /        /: : : : : : : ',
          |: :ヽ \::::`:.、     ヽ_フ   /        /: : : : : : : : : : ヽ
          |: :.:ィ\ \:::::::丶、       {       /|_,.-‐'" ̄ \: ヽ
         / |: : :ヽ  `ー==:≧ 、_   イ|      / /:::::::/       ヽ:.}
        /    l: : : :|       人:::::::::::|      l:.:/:::::::/         ヽ
         |    ヽ: : l        /、  ̄ ̄|      l/:::::::/          |
         |     ∨      /::::::: ̄ ̄ |      |::::::/            |
         |      /      /::::::::::::::::::::::|      l::::::{            |
489login:Penguin:2010/10/10(日) 18:30:46 ID:Sp+agnVp
そのAAを壁紙にしたい
490login:Penguin:2010/10/11(月) 18:54:49 ID:VGide9Wk
pythonって,vbaみたいな位置付けだな
491login:Penguin:2010/10/19(火) 16:15:51 ID:EWnEpHL/
GTK+を使ってプログラムを作ると、MacOSXでボロボロな結果になるから使わないほうがいい。
492login:Penguin:2010/10/19(火) 17:17:34 ID:2NWEe5/4
位置づけとは微妙
pythonは、VBAほど腐ってはいないぞ

ところでVBAの近代化って進んでいるのか?
Access VBA甘グラマ供の再利用は由々しき問題ぜよ
493login:Penguin:2010/10/19(火) 19:29:33 ID:mjCBYhC0
VBAも.netが使えるっぽいから、近代化進んだんじゃないの?
494login:Penguin:2010/10/19(火) 19:47:43 ID:/Nj/keXZ
>>491
どう考えてもGTKが悪いのではなく糞マックが悪いと思うんだが。
495login:Penguin:2010/10/19(火) 19:49:07 ID:Ux5sdFhe
どっちが悪いという話はしていないと思う。
496login:Penguin:2010/10/19(火) 20:39:28 ID:2NWEe5/4
>>493
そうなの?
ttp://www.microsoft.com/japan/msdn/vba/
なんて2003年でとまってんだけど、更新が。
497login:Penguin:2010/10/19(火) 21:38:06 ID:mjCBYhC0
>>496
[HOWTO] Microsoft Office で Visual Basic for Applications から Visual Basic .NET クラス ライブラリを呼び出す方法
http://support.microsoft.com/kb/317535/ja

こういう事が出来るらしい。
けど一般的じゃないっぽいね。
まぁ互換性失われるし一般的にはならないように感じられるな…
498login:Penguin:2010/10/20(水) 16:42:06 ID:dibJXxnt
>>494
GTK+がマルチプラットフォームになるように吸収するんだろ?
だったら、Macは悪くない。

かと云って、「GTK+が悪い」と云うのはおこがましい。
文句云っていいのは、それ相当のものを作れる人だけだ。
499login:Penguin:2010/10/20(水) 16:59:50 ID:nkUeeiMO
>>498
「同じようなモノをつくれるひとでなければ批評してはいけない」というのなら

・linuxの○○の部分が悪いといっていいのはOS開発者だけ
・ゲームの○○が面白くないといっていいのはゲーム開発者だけ
・携帯電話の○○が使いづらいといっていいのは端末開発者だけ
・新作映画のストーリーラインを批判していいのは映画監督だけ

そういうのって言論封殺っていわない? オープンソース風土とはだいぶ違う文化じゃない?
500login:Penguin:2010/10/20(水) 17:17:25 ID:xVoAed/u
WindowsでもLnFはぼろぼろだよね。
501login:Penguin:2010/10/20(水) 21:35:34 ID:9tE6IJS+
osxのgtk+ってx window版とネイティブ版とあるんじゃなかったっけ?
502login:Penguin:2010/10/22(金) 10:57:35 ID:i0oNjkXQ
Windows7でも見た目が最悪になるからな。
MacOSXみたいに日本語入力ができないとか絶望的ってほどではないが。
503login:Penguin:2010/10/22(金) 11:53:18 ID:r2m3k6+H
Pythonバインドでも同じ問題って起こるの?

今日からPython勉強してGUIなアプリを作ってみようと思っていたのだが・・。
Qtのほうがいいのかな。でも、GNOME使ってるしGtkがいいんだよな
504login:Penguin:2010/10/22(金) 22:39:01 ID:T3dIa7zi
そんなあなたにPythonでもC++でもPerlでもokの

wxGlade
http://wxglade.sourceforge.net/

はどうかな?
505login:Penguin:2010/10/24(日) 07:46:05 ID:Vhl0qsDm
残念だが、日本語云々の話はWindows1.0のレベルにも達していないというのが現実。
開発体制の問題だろうね。
506login:Penguin:2010/10/24(日) 22:57:17 ID:uho4GCjV
酷いと思うけどさすがに1.0はないだろ
それに日本語(2バイト文字)関連はGtkよりQtのが酷いしマシな方
507login:Penguin:2010/10/26(火) 18:03:28 ID:XGIO2f11
GtkTreeView内のテキスト(gtk_cell_renderer_text_newで設定したもの)がカラムの幅を超えたら自動的に折り返して次の行に表示するようにできませんかね?
現状はカラムの幅を超えた部分は消えてしまいます。自分で改行を入れた場合は次の行に表示されるので折り返しも出来そうな気はするのですが。
508login:Penguin:2010/10/26(火) 18:05:34 ID:O6NRu0pw
509login:Penguin:2010/10/26(火) 18:32:48 ID:XGIO2f11
>>508
ありがとうございます!
510login:Penguin:2010/11/02(火) 19:29:02 ID:0mcR1TdE
TreeView内にGtkCellRendererTextでテキストを表示する場合に、一部の文字だけ色を変えたり太字にしたりすることは可能でしょうか?
あるいはTreeViewにGtkEditableを格納するようなことができればそれでもよいのですが。
511login:Penguin:2010/11/02(火) 19:41:27 ID:RVdg5wgR
>>510
pango markupで対応するんじゃね?
512login:Penguin:2010/11/04(木) 13:45:22 ID:xBpDemuD
>>511
g_object_set (renderer, "markup","ab<b>cd</b>e", NULL);
とかでできました。ありがとう!
513login:Penguin:2010/11/07(日) 14:39:48 ID:qFCSAFkG
GtkTextIterのリファレンス読んでて、iterって単語がいっぱい出てくるけど
これって、日本語に訳すとどういう単語が適切なのかな?
iteratorで「反復子、繰り返しの概念」って出てきて、いまいち意味がつかめず
iterって出てくると、まったくもって意味がわからん。
ググっても、熱核融合炉とか出てくるし…
514login:Penguin:2010/11/07(日) 14:43:10 ID:Um+oFuZb
イテレータはイテレータだよ
ループの抽象化
515login:Penguin:2010/11/07(日) 14:57:51 ID:qFCSAFkG
>>514
iteratorとiterは、まったく同じと考えりゃいいということ?
516login:Penguin:2010/11/08(月) 06:15:04 ID:Wxghvts2
>>515
正確な話は分からないけど、Gtkで出てくる?Iterの類は"位置を指す物"と理解してる。
GtkTextIterでいうと、GtkTextBuffer中のどこかの位置を指す。
イテレータだと、意味するものが広くてピンとこない感じがする。
かといって、訳す場合に他にいい単語があるかは分からない。
517login:Penguin:2010/11/08(月) 06:20:30 ID:Wxghvts2
ごめん、文字化けした
"?Iter"は"なんとかIter"ってことね
518login:Penguin:2010/11/08(月) 20:12:16 ID:M/miEbwJ
>>516
ものすごく参考にさせていただく。ありがとう。
519login:Penguin:2010/11/09(火) 00:55:32 ID:Tw+0pcNe
C++のイテレータはポインタと同じ動作をするものと考えられている。
ポインタのようなものっていう概念が一番しっくり来る。
520login:Penguin:2010/11/13(土) 16:17:20 ID:Pqzt35wF
>>519
ものすごく返答が遅くなったけど、感謝します。
521login:Penguin:2010/11/22(月) 02:59:05 ID:PS3m5Gby
GTK+のリファレンスを見てると、ところどころに
"… is deprecated and should not be used in newly-written code."
ってのが、出てきます。
「推奨しないし、使うなよ」って意味だけど、どうすればいいの?
公開する予定の無いプログラムだから、無視して使ってるけど。
522login:Penguin:2010/11/22(月) 03:05:51 ID:9McU1lSw
他のやり方があるはず
523login:Penguin:2010/11/24(水) 15:54:13 ID:euuHJfN4
GtkTreeViewでアクティブなRowをハイライトして色を反転させる
機能を無効にすることはできますでしょうか?
自分の環境ですとアクティブなRowは青い背景に白い文字でハイライト
されてしまいます。
RowのSelected状態は変えることができるのですが、そちらはRowが
Select時に灰色っぽくなるだけで問題ないのです。ハイライトの機能
の方を無効したいです。
524login:Penguin:2010/11/29(月) 21:54:46 ID:sMx9z6BS
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
と、ボタンにアイコンを付けようとしても、アイコンが出てきません。
上の場合、「キャンセル(_C)」というラベルだけ出ます。
メニューバーにアイコンを付けようとしても、アイコンが出ません。
何か欠けてるんでしょうか?
525login:Penguin:2010/11/29(月) 22:14:12 ID:lGrvc++f
gtk_button_set_image()の説明に"gtk-button-images"の設定によると書いてあるから調べてみて
526login:Penguin:2010/11/29(月) 22:34:36 ID:sMx9z6BS
>>525
ありがとう。今から調べます。
527login:Penguin:2010/11/29(月) 22:58:14 ID:sMx9z6BS
他に同じく悩む人がいるとは思えませんが、解決したのでご報告。
525さんにヒントいただいて、devhelp読んで、ググったら下のとこが出た。
http://ubuntuforums.org/showthread.php?t=1135510
ここの逆をやって、アイコンが出ました。ありがとう。
528login:Penguin:2010/11/29(月) 23:22:35 ID:OgcvDSer
>>527
つーか、俺もこれずっと悩んでた。
原因が分かってスッとしたよ。ありがとう!
529login:Penguin:2010/11/30(火) 12:55:40 ID:M+63bYwL
>>527
ありがとう!!
530login:Penguin:2010/11/30(火) 16:19:03 ID:TQa7Ptpz
>>527
なんかよくわかんないけど、オレからもありがとう!
531login:Penguin:2010/11/30(火) 21:51:44 ID:o02+ms48
>>527
なんのことかわからんけど、俺からもありがとう!
532login:Penguin:2010/12/01(水) 23:14:33 ID:xPo+2HeT
MinGWでWindowsむけにGTK+アプリをクロスコンパイルしている人はいるのだろうか。
Windows上で環境構築せずにすむから楽そうなんだけれど。
533login:Penguin:2010/12/02(木) 00:56:21 ID:zqStIY3v
>>532
最近のFedoraはmingw関連のパッケージがたくさん追加されているから
Windows向けのクロスコンパイルは簡単だよ。
534login:Penguin:2010/12/02(木) 08:40:09 ID:TtpWl3rj
Fedoraかぁ…。
調べてがんばってみる。
535login:Penguin:2010/12/03(金) 13:50:17 ID:G8uZw67f
TreeViewでCellRendererTextで描画してるカラムについてなんですけど、CellRendererTextにwrap-widthを設定した場合、そのカラムをwrap-width以下にリサイズすることができなくなってしまいます。何か回避方法はありますか?

欲を言えばwarp-widthがカラムの幅に対して自動的に変わるようにしたいです。
536login:Penguin:2010/12/03(金) 14:43:06 ID:nwQzeTfG
537login:Penguin:2010/12/03(金) 16:46:38 ID:G8uZw67f
>>536
おお、pythonだけどCでも全然いけそうな対処ですね。
ありがとうございます!
538login:Penguin:2010/12/13(月) 14:42:35 ID:GOtpVrpZ
GtkTreeViewで質問です。
gtk_tree_view_set_grid_linesで水平のグリッドラインを表示した状態でcell-background-gdkを使ってセルの背景色を設定しているのですが、色をつけたセルだけグリッドラインが消えてしまいます。何か解決方法ってありますか?
539login:Penguin:2011/01/09(日) 09:14:57 ID:urRBMp8d
GTKを利用したプログラミングの勉強をしているのですが、不明な点があり質問させていただきます。

GTKにて作成したウインドウを常に最前面に表示しておきたいのですが、
それを実現するにはどのようにすればよいでしょうか?

ビュアーのようなものを作っているのですが、他の作業をしながらも確認したいため
他のウインドウより手前に表示しておくことが出来ればと考えております。
540login:Penguin:2011/01/09(日) 09:42:27 ID:geIJW/Gp
>>539
>GTKにて作成したウインドウを常に最前面に表示しておきたいのですが、

WM(ウィンドーマネージャ)側の設定で、できるんじゃないのかな。
541login:Penguin:2011/01/09(日) 12:54:14 ID:98wyOWKO
gtk_window_set_keep_aboveというのがあるが、うまくいくかはWMに依存する
542login:Penguin:2011/01/09(日) 13:28:00 ID:urRBMp8d
>>541
ありがとうございます。
うまく動きました。
543login:Penguin:2011/01/10(月) 15:25:42 ID:pdeWcU/o
おっさんにもわかるPYTHONの
”ウィンドウを表示するために--クラスを作成する” で

>> self.wTree.add_from_file(os.path.dirname(os.path.abspath(__file__))+"/"+self.gladefile)
のところで
glib.GError: root 要素が間違っています: 'glade-interface'

となり止まってしまいます。どなたか解決方法がわかる方お願いします
544login:Penguin:2011/01/10(月) 16:41:54 ID:lxMobblK
しらんが
os.path.join(os.path.dirname(__file__), self.gladefile)
とかな
545543:2011/01/10(月) 17:33:42 ID:pdeWcU/o
最初から作り直してわかったんですがgladeのほうの設定がおかしくなってたみたいでした
ご迷惑おかけしました

546login:Penguin:2011/01/11(火) 21:47:15 ID:vH5X5SgR
Gtkのアプリケーションを勉強しているのですがわからないことがあります。

TreeViewを利用して、計算結果が順次追加されていくアプリケーションを制作しているのですが、
計算結果が追加されていくに連れて結果を見るにはスクロールが必用になっております。
自動でスクロールを一番下に持って行くにはどのようにすればいいのでしょうか?

理想としては、スクロールが一番下にされていれば、リストが追加されるたびに常に一番下に
スクロールされ、スクロールが途中になっていれば項目が増えてもスクロールは維持。
というふうにしたいです。
ScrolledWindowのset_vadjustmentを利用すればいいことはわかったのですが、
うまく動かすことができません。
547login:Penguin:2011/01/11(火) 23:29:55 ID:5lRRaNMx
多分ちゃんとしたやり方ではないけれども http://ideone.com/5B9PD
548login:Penguin:2011/01/12(水) 00:28:52 ID:vB7prOwP
便乗質問

gtk.TreeViewColumnで幅を指定しているときにその幅を超える文字列は折り返したいんだけど、オプションが見当たらない。
オプションってないの?
549login:Penguin:2011/01/12(水) 00:47:08 ID:5/uHApeb
gtk.CellRendererTextのwrap-width
550548:2011/01/12(水) 18:24:47 ID:vB7prOwP
>>549
ありがとう
CellRenderTextのほうで折り返しが設定出来たのか。
考えてみると、確かに折り返すのはTextだね。

関連でもうひとつ質問させてください
TreeViewColumnをset_resizable( True)にしているんだけど、カラムがリサイズされたときはどこのシグナルがでる?
自分なりに捜してみたのだけど、みつからない、。
551login:Penguin:2011/01/12(水) 19:26:21 ID:B0eGTMcl
GTKなんて時代遅れ
552login:Penguin:2011/01/12(水) 21:39:01 ID:DAHnc8sL
時代はQ'tだってか?www
553548:2011/01/12(水) 21:41:05 ID:vB7prOwP
上に同じ質問がありましたね。
検索に出て気づきました。

すみません。ありがとうございました。
554login:Penguin:2011/01/13(木) 18:44:21 ID:XeFPXStO
ねらのみなさんに質問させていただきます。

正確にはGTK#なんですがGTK+でもいいです。
ウィンドウを常に最背面に表示する方法はありますか?
検索するとこんなのが見つかったのですが、
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <X11/Xatom.h>
#define WIN_LAYER_DESKTOP 0
#define WIN_HINTS_SKIP_WINLIST (1<<1)
#define WIN_HINTS_SKIP_TASKBAR (1<<2)

#define XA_WIN_LAYER "_WIN_LAYER"
#define XA_WIN_HINTS "_WIN_HINTS"
ーーーーーーーーーーーーーーーーー

/* windowを一番下に置く */
data[0] = WIN_LAYER_DESKTOP;
gdk_property_change(GTK_WIDGET(window)->window,
gdk_atom_intern(XA_WIN_LAYER, False),
(GdkAtom) XA_CARDINAL, 32, PropModeReplace,
(unsigned char *) data, 1);

/* taskbarやwinlistにこのwindowを表示させないようにする */
data[0] = WIN_HINTS_SKIP_WINLIST | WIN_HINTS_SKIP_TASKBAR;
gdk_property_change(GTK_WIDGET(window)->window,
gdk_atom_intern(XA_WIN_HINTS, False),
(GdkAtom) XA_CARDINAL, 32, PropModeReplace,
(unsigned char *) data, 1); 

XA_CARDINALってなんでしょう?? 上記ソース by http://www.host.or.jp/cgi-win/webboard/wb_cont.exe?programing+g+10016+NAME
555login:Penguin:2011/01/13(木) 20:04:15 ID:yufk+Tn2
そのURLは叩きたくない

本家にいきましょう
GTK#本家
http://www.mono-project.com/GtkSharp

関連スレ
[Not Gtk+] Gtk#質問スレッド [mono]
http://hibari.2ch.net/test/read.cgi/linux/1294642865/
556login:Penguin:2011/01/13(木) 20:14:13 ID:Q+1lsYEj
>>554
荒らしてんじゃねーよカス
557login:Penguin:2011/01/13(木) 20:18:51 ID:XeFPXStO
>>556
煽り厨キター
558login:Penguin:2011/01/13(木) 20:20:21 ID:XeFPXStO
連投すいません。
本家のフォーラムで聞いてみようと思います。
559login:Penguin:2011/01/14(金) 03:23:12 ID:KnKuBbAY
初心的な質問でスミマセンが

pythonでglade3でつくったLabelの内容を変更するには
どう直したらよいか教えていただけますか?
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import os.path
import gtk
import gtk.glade
class counterGTK:
def __init__(self):
self.gladefile = 'var0.1.glade'
self.wTree = gtk.Builder()
self.wTree.add_from_file(略)
# count number
self.number1 = 0
dic = {
"on_clicked1" : self.on_clicked1 ,
"on_clicked2" : self.on_clicked2 ,
"on_window1_destroy" : self.on_window1_destroy }
self.wTree.connect_signals(dic)
self.mainWindow = self.wTree.get_object("window1")
self.mainWindow.show_all()
def on_window1_destroy(self, widget):
gtk.main_quit()
def on_clicked1(self, widget, event=None):
self.number1 += 1
# !!!ここが変と表示が出ます。
self.mainWindow.set_text(str(self.number1))
if __name__ == "__main__":
560login:Penguin:2011/01/14(金) 09:50:28 ID:QJfXyK10
プログラム
http://hibari.2ch.net/tech/
561login:Penguin:2011/01/15(土) 22:11:43 ID:KQmBhVmm
>>559
set_titleじゃ駄目?
562login:Penguin:2011/01/17(月) 01:04:20 ID:VJob0is5
ブラウザやエディタの上で、
マウスカーソルの下にあるテキストを取得する単純な
方法ってあるんでしょうか?ダブルクリックすると反転する単語
を取り込みたいのですが。出来ればトリプルクリックで反転する
一行も一緒に取り込みたいです。


563login:Penguin:2011/01/17(月) 01:09:27 ID:VJob0is5
すいません、アプリケーションによって
トリプルクリックでの反転の仕様は違うようですが、

マウス位置が所属するパラグラフ、単語、行を同時にとりこみたいのです。
言い忘れましたが想定する言語は英語などアルファベットのものです。
564login:Penguin:2011/01/19(水) 01:15:17 ID:AHjWAb2g
GTK+3.0のリリースが楽しみだなぁ
Windows版とかMac版の出来が気になる
565login:Penguin:2011/01/21(金) 13:29:12 ID:oTTqy+gy
>>561
遅れてすみません
self.mainWindow.set_title(str(self.number1))
に直すとウィンドウのタイトル欄の方に表示
おかげで一歩前進できたありがとうございました
566login:Penguin:2011/01/25(火) 22:03:31 ID:93ZVq4E+
家計簿のようなものを作りながらPyGTKの勉強をしております。
TreeViewを使ってリストを作成しているのですが、

ID 値段 名前 メモ
1 100 コーラ 自販機
2 200 カルピス 自販機

のようなリストがあるとして、リスト中を右クリックすると編集メニューを出すようにしたいのですが、
右クリックした際にメニューを出す方法や、右クリックした列の値の取得方法がわからず悩んでおります。

どのようなコードで実現できるでしょうか?
567login:Penguin:2011/01/25(火) 22:15:19 ID:3NJ+mNNa
>>566
自分で調べる気はないのかね?
http://lmgtfy.com/?q=gtk+treeview+popup+menu
568login:Penguin:2011/01/25(火) 23:38:42 ID:93ZVq4E+
>>567
いろいろなワードで調べてみたのですが、見つけることができませんでした。
>>567の検索候補も見てみたのですが、TreeViewで右クリックした時の処理はあるのですが、
右クリックした行の値を取得する方法はありませんでした。
569login:Penguin:2011/01/25(火) 23:55:07 ID:p4XnSN29
>>568
テストしてないけど、gtk.TreeView.get_selection()で取れない?
570login:Penguin:2011/01/26(水) 06:42:35 ID:n1B9dBtN
VBoxにLabelやEntryをいくつか配置すると高さが全て均等になりますが、高さを設定するにはどうすればいいですか?
571login:Penguin:2011/01/26(水) 08:43:37 ID:LEML9YPE
ぴーな?
572login:Penguin:2011/01/26(水) 09:51:05 ID:z74Fwadf
GTK+を使ってシリアルポートで自作ハードウェアと通信することは出来ますか?
573login:Penguin:2011/01/26(水) 11:33:09 ID:h7bjSSMJ
>>572
自作ハードウェアが動くか知りませんが、「gtk シリアルポート」でググると
アホみたいに検索結果が出てきますが。
http://www.linuxquestions.org/questions/programming-9/gtk-serial-port-communication-313238/
http://sourceforge.net/projects/gcomm/
574570:2011/01/27(木) 04:23:46 ID:HXLIqy/B
HBOXでは高さの指定ができないのですかね
575login:Penguin:2011/01/28(金) 11:05:05 ID:Gptdpqjn
すいません、教えてください。
ubuntuにて、pixmapにgdk_draw_stringで日本語を表示させたいのですが、文字化け
し、下記のメッセージが出ます。
does not support all the required character sets for the current locale "ja_JP.utf8"
どのようにしたら正常に表示できるようになるでしょうか。
576login:Penguin:2011/01/29(土) 01:44:56 ID:6hO1Bdmk
ロケールやフォントを変更したらどうだろうか?
577login:Penguin:2011/01/29(土) 02:07:22 ID:l0OT+bD3
gdk_draw_ナントカはdeprecated
cairo使ってね
578login:Penguin:2011/02/01(火) 23:01:59 ID:4jG8Kz/p
TreeViewの文字列にURLがあればハイパーリンクにしたいと思っているのですが、TreeViewの文字列を
ハイパーリンクにするにはどのようにすればいいのでしょうか?

579login:Penguin:2011/02/02(水) 20:38:30 ID:KRwtVrWu
>>578
g_spawn_command_line_sync()でgvfs-openコマンド呼べばいいんじゃね?
ダメならエラーが返るだろうし。
URLかどうか判断するなら、GRegex使うのが良いのかな?
580login:Penguin:2011/02/12(土) 01:27:29 ID:Tq5jzXI4
3.0 releaseしてたんだな
581login:Penguin:2011/02/13(日) 02:06:32 ID:Y2lUgTlR
結局、OpenGLは統合されなかったか…
582login:Penguin:2011/02/13(日) 16:56:29 ID:q0+Fj2Ij
以下のように画像を表示するだけのプログラムを作成しました。
この画像を表示したまま、プログラムを終了したいのですが、
そのようなことは可能でしょうか。
(他のプログラムに上書きされるまで、プログラム終了後も画像を表示しつづける。)

/* 画像表示領域の生成 */
drawing_area = gtk_drawing_area_new();
gtk_widget_set_size_request( drawing_area,
gdk_pixbuf_get_width( pixbuf ),
gdk_pixbuf_get_height( pixbuf ) );

gtk_container_add( GTK_CONTAINER( window ), drawing_area );

g_signal_connect( G_OBJECT( window ), "delete_event",
G_CALLBACK( close_window ), pixbuf );

g_signal_connect( G_OBJECT( drawing_area ), "expose_event",
G_CALLBACK( expose_event ), pixbuf );

gtk_widget_show_all( window );
gtk_main();
583login:Penguin:2011/02/13(日) 17:17:13 ID:CYJdXAks
ウィンドウの×ボタンを押したら隠れるのはすぐできるけど、何がしたいのかよくわからないので教えて
584login:Penguin:2011/02/13(日) 17:45:42 ID:q0+Fj2Ij
>>583
説明が少なくてすいません。

X86 Linux PCを使って業務用のシステムを作っています。

PCを起動して、OSが立ち上がったあと、自動で以下の処理を行います。
1)USBメモリが接続されているチェックします。
2)もしUSBメモリがマウントできたらファイル(数百Mバイト)をHDDにコピーします。
3)ファイルコピー完了後に、メインの処理を行います。

2)のファイルコピーに時間がかかるため、その間に「しばらくお待ちください」という静止画を
フルスクリーンで表示したいんです。1)〜3)の処理はシェルスクリプトで行い、

#!/bin/bash
(省略)
  |
静止画を表示
cp aaa.bin /temp // ファイルコピー
静止画を消す
  |
メインの処理

という感じでやりたいと考えています。

シェルスクリプトでやるのが最適かどうかわからないのですが・・・。
585login:Penguin:2011/02/13(日) 17:56:06 ID:XiVInOjw
で、教えたらお前の給料の何割くれるんだ?
586login:Penguin:2011/02/13(日) 18:14:42 ID:ibuao8Zp
プログラム起動→メッセージ表示→シェル実行→シェルの終了待ち→戻り値確認→終了処理
ではダメなん?
587login:Penguin:2011/02/13(日) 18:30:28 ID:YWgLFWCD
>>584
商売でオプソ使うのは止めたほうがいいよ
嫌味で言ってるんじゃなくて、法務的な問題が多すぎてメリット無いって
ソースコード開示しろって言われたとき、開示できる仕様なの?
客先とトラブルになっちゃうよ?
止めた方がいいと思うけど
588583:2011/02/13(日) 20:56:45 ID:L9k+0hAb
>>584
内容了解。俺だったらこんな感じに実装するけどこでどうかな?
どうしても一回プロセス自体終了する必要があるのであれば
もう少し手を入れないといけないと思う。

スクリプト内のhelloworld.pyは以下のもの
http://www.pygtk.org/pygtk2tutorial/examples/helloworld.py

#!/bin/bash
${PWD}/helloworld.py &
GTKPID=$!
sleep 10
kill ${GTKPID}
exit
589login:Penguin:2011/02/13(日) 23:32:30 ID:q0+Fj2Ij
>>588
ありがとうございます。
なるほど、そのようなやり方があるのですね。

非同期のプロセスで画像を表示し、
ファイルコピーが完了したら
プロセスをkillするということで理解しました。

私の思っていることが出来そうです。
たいへん勉強になりました。

>>587
同僚の仕事を楽にするために、手伝っています。
今回の件のソースは公開しても全然問題ないのですが、
今後は気をつけようと思います。

以上、ありがとうございました。
590login:Penguin:2011/02/15(火) 00:33:40 ID:yHAzvg6R
http://sourceforge.jp/magazine/11/02/14/0318203
2年ぶりのメジャーリリース、「GTK+ 3.0」が登場
2年ぶりって…
訳も適当だし、なんか寂しいリリースだな
591login:Penguin:2011/02/19(土) 17:26:47 ID:7Kan848G
PyGTKを使っているのですが、TreeViewのデータを更新したいのですがどのようにすればわからず苦しんでおります。

行いたいことは、
TreeViewに(ID,TEXT)というカラムありデータが羅列しています。
そのIDを指定してTEXTの内容を変更したいのですが、どのようにすればいいでしょうか?

どうかご教授頂ければと思います。
592login:Penguin:2011/02/20(日) 22:47:31.70 ID:9P4zTjVT
>>591
簡単に言うと、TreeStoreのIterを対象のところ(ID)まで移動して、
tree_store_set()を行う。
http://library.gnome.org/devel/gtk/unstable/TreeWidget.html#id895991
593login:Penguin:2011/02/20(日) 22:55:37.60 ID:i278BMok
(´・ω・`)ご教示だろ
594login:Penguin:2011/02/20(日) 22:59:25.78 ID:AtCPi59r
女教授だって
595login:Penguin:2011/02/28(月) 09:54:32.03 ID:TADfIJ7a
596login:Penguin:2011/03/06(日) 02:46:29.22 ID:fhS84NZT
スレ違いであれば申し訳ないございません。

LinuxでGTK+を使ってアプリを作成しています。

Windowsで言うグローバルホットキーを実装したくて色々調べたのですが該当するページが見つからず途方にくれています。

GTK+にはRegisterHotKey()に当たる関数はないのでしょうか?
また、Linuxでグローバルホットを実装する方法があればご提示お願い致します。
597login:Penguin:2011/03/06(日) 04:33:17.56 ID:tsVY1dm+
>>596
gtk hotkey でググったら、一発ですが探してないの?
598596:2011/03/07(月) 03:13:28.76 ID:PnCjIDjh
>>597
すいません、ググり方が少し違ったようで・・・
「Linux プログラミング ホットキー」などで探していました。
ご指摘頂いたワードで検索した結果なんとか行けそうです。
本当にありがとうございました。
599login:Penguin:2011/03/08(火) 11:03:24.04 ID:d1JzSVeD
検索って難しいよね。目的の情報に準じた予備知識があって
適切なキーワードを選択できてはじめて探し当てられる。
600login:Penguin:2011/03/08(火) 12:59:49.88 ID:a0IyugMv
>目的の情報に準じた予備知識があって

あるある。だいぶ知恵ついてくると簡単に検索できるようになるけど、初めての分野だと一向にヒットしない

よく初心者スレで「検索しても見つかりませんでした」「○○で検索すればすぐみつかるだろksg」
みたいなやりとり見るけど、正直初心者にはムリだよな…と思ったりもする。放置するけど

今度またググル先生がアルゴリズム変えるらしいけど、こういった点では改善がみられるかなあ…
601login:Penguin:2011/03/08(火) 19:26:19.05 ID:tKbotCXi
3.0.0になってLnFはなんか変わった?
右側に0ナンバーが多いものはなんか怖いから、まだ試してない。
602login:Penguin:2011/03/13(日) 21:58:33.68 ID:Vqq2M10I
valaつかっているひといますか?
603login:Penguin:2011/03/13(日) 23:48:32.57 ID:u6WvClB5
604login:Penguin:2011/03/17(木) 17:02:45.22 ID:+oBUwr3N
質問です。pygtkを使っています。
gtk.TextViewの背景色を変更するにはどのようにすればよいでしょうか?
605604:2011/03/18(金) 15:07:37.88 ID:hYpmyKaN
自己解決しました。 modify_base(state, color)で変更できました。
606login:Penguin:2011/04/29(金) 21:13:49.14 ID:8r02bpAR
squeeze gtkmm 2.4 gtkglextmm 1.2 pthread でプログラムを作っているんだけどプログラムの終了
時に以下のエラーが出るようになってしまいました。同じようなエラーを経験した方は居ませんでしょ
うか?

glibmm-CRITICAL **: Glib::ObjectBase* Glib::wrap_create_new_wrapper(GObject*): assertion `wrap_func_table != 0' failed
glibmm-WARNING **: Failed to wrap object of type 'GdkScreenX11'. Hint: this error is commonly caused by failing to call a library init() function.
607606:2011/04/30(土) 22:26:19.43 ID:VyP2E163
自己解決しました。何でコンパイルが通るんだ・・・


Gtk::Main kit( argv, argc );
Gtk::GL::init( argv, argc );


Gtk::Main kit( argc, argv );
Gtk::GL::init( argc, argv );
608login:Penguin:2011/05/02(月) 11:45:41.61 ID:izX8cIkn
通らない理由がないからな
609login:Penguin:2011/05/03(火) 00:46:43.55 ID:WBrmWZ0j
>>607
試してみたら普通にコンパイルエラーになる。
それと関係無いけど、gtkmmは中々むずいよ…

m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
m_act_quit->signal_activate().connect(mem_fun(*this, &AppWindow::on_quit_action_activated));
void AppWindow::on_quit_action_activated()
{
Gtk::Main::quit();
}

とあるコードの一片だけど、敷居が高いというかなんというか…
そんで今はValaを使ってる。Valaだと↓こんな感じ。

var quit_action = builder.get_object("action_quit") as Gtk.Action;
quit_action.activate.connect(() => { Gtk.main_quit(); });
610login:Penguin:2011/05/03(火) 18:07:59.69 ID:6MgTkiYn
>>609
コンパイルが通る方は適当に作った変数を食わしてたんだけど何故か逆にしてもコンパイルが通る
今は書き直して本物のargc,argvを入れています。

valaか〜・・・ドキュメント多い?
611login:Penguin:2011/05/07(土) 08:45:48.59 ID:dGkArH/V
Valaは日本語のまとまったドキュメントは皆無だね。
英語だったら本家サイトのドキュメントで困る事はないよ。
最終的にC言語にトランスレートされるんだけど、そのソースを見るのが中々楽しいw
612login:Penguin:2011/05/11(水) 17:31:43.03 ID:ZkP/smDq
gtkで音楽を鳴らすことは出来ますか?
どうすればいいでしょうか?
613login:Penguin:2011/05/11(水) 21:14:23.65 ID:lC/0GEj9
できません
614login:Penguin:2011/05/11(水) 21:50:59.78 ID:TI/wHkRV
音楽の方はGTKとは関係ないんじゃないかね?
とりあえずALSA APIとか調べてみては?
615login:Penguin:2011/05/14(土) 12:57:13.28 ID:z2Mrc21j
すいません
windowsでgtk+の開発環境を整えたいのですが参考になるサイトありませんか?
616login:Penguin:2011/05/14(土) 13:14:39.16 ID:5Yfumgbf
板の名前を100回読読んで最後にサーをつけてみやがれ糞ども
617login:Penguin:2011/05/14(土) 16:45:40.19 ID:lAxQi/en
>>615
プログラム板にスレがあるよ
そっちで聞けば回答がもらえるかもしれない
こっちの質問は撤回して向こうへ行くといい
618login:Penguin:2011/05/14(土) 18:54:06.07 ID:ndPfVk8h
619login:Penguin:2011/05/14(土) 19:17:02.73 ID:z2Mrc21j
>>617
ありがとうございます
でも、やっぱりwindowsだと面倒くさそうなのでLinuxでやることにしました
そこでまた問題があるのですが
(PDF注意) http://www.iim.cs.tut.ac.jp/~sugaya/books/GUI-ApplicationProgramming/files/GTK-book-chapter2.pdf
ここに載っているサンプルプログラムをコンパイルしたら以下のエラーが出たのですがどうすればいいのでしょうか?

package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+2.0.pc`
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
image-viewer.c:1:21: fatal error: gtk/gtk.h: そのようなファイルやディレクトリはありません
compilation terminated.

環境はUbuntu11.04です

>>618
ありがとうございます
でも僕Python3をつかってるので・・・
620login:Penguin:2011/05/14(土) 19:25:22.37 ID:Obe5d9n3
>>619
どうすればいいのでしょうかって、どうすればいいのか自分で貼り付けてるじゃん。
Perhaps you should add the directory containing `gtk+2.0.pc`
to the PKG_CONFIG_PATH environment variable

あと質問のつもりなら、どのソースをどんな方法でコンパイルしたかくらいは書くべき。
621login:Penguin:2011/05/14(土) 20:04:20.32 ID:z2Mrc21j
>>620
すいません。以後気をつけます
それとパスの通し方がわかりません・・・linuxはあまり触ったことがないので
622login:Penguin:2011/05/14(土) 20:55:58.32 ID:Jq7jXtDN
Linuxだと面倒臭くない、という理由だった人間がパスの通し方もわからんとか…
世の中なめてんのか?
623login:Penguin:2011/05/14(土) 21:05:27.10 ID:z2Mrc21j
すいません。日本語でおねがいします
624login:Penguin:2011/05/14(土) 21:20:41.50 ID:Jq7jXtDN
LinuxでGTK+プログラミングしようって人間が日本語でないとだめって…
世の中なんめてんのか?
625login:Penguin:2011/05/14(土) 21:28:54.65 ID:agWK3k8h
ごめん俺も英語ダメ
出来るだけ日本語の情報があるとうれしいw
626login:Penguin:2011/05/14(土) 21:35:13.28 ID:z2Mrc21j
>>624
親のすねかじってるお前よりマシだよハゲ
627login:Penguin:2011/05/14(土) 21:45:25.94 ID:Jq7jXtDN
              ,,,,,,,,,,,,,,,,,,,,
             /": : : : : : : : \
           /-─-,,,_: : : : : : : : :\
          /     '''-,,,: : : : : : : :i
          /、      /: : : : : : : : i     ________
         r-、 ,,,,,,,,,,、 /: : : : : : : : : :i    /
         L_, ,   、 \: : : : : : : : :i   / Yahoo!翻訳したら
         /●) (●>   |: :__,=-、: / <   負けかなと思ってる
        l イ  '-     |:/ tbノノ    \
        l ,`-=-'\     `l ι';/       \ 英語がだめな24・男性
        ヽトェ-ェェ-:)     -r'          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         ヾ=-'     / /
     ____ヽ::::...   / ::::|
  / ̄ ::::::::::::::l `──''''   :::|
628login:Penguin:2011/05/14(土) 22:10:07.52 ID:TqodLHpv
GTK以前にOSで躓いてるのか。
だったら分かってるだろうwinでやった方がいいんじゃないの?
winはもっと分からないっていうなら仕方ないけど。
629login:Penguin:2011/05/14(土) 23:47:30.17 ID:agWK3k8h
プログラミング系の英文を翻訳したらわけが分からなくなる
原文でわけが分からない方がましなくらいにね・・・

それとは別に ID:z2Mrc21j はもっと謙虚になるべき
下地が出来ていないし質問する場所が悪いし何を聞いたらいいか分かっていない気がする

何でパスを通したいのか分からないけど細かい質問はgoogle先生で検索してみるといいかも
630login:Penguin:2011/05/14(土) 23:48:21.53 ID:wLtMCrHN
>>621
パスの通し方はGTKと全く関係ないLinuxの基礎の基礎なので、スレ違いです。
631login:Penguin:2011/05/15(日) 13:51:59.78 ID:cCRv4Dbr
>>619
aptitude install libgtk2.0-dev
gcc `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0` image-viewer.c
632login:Penguin:2011/05/15(日) 20:44:42.05 ID:CFcmlqIg
まあ、パスの通し方でからんでるアホも、
同レベルとみなした方が良さそうではあるがな
633login:Penguin:2011/05/15(日) 20:59:22.40 ID:WCLbHSMZ
それにしてもスレ違いの質問は認めちゃだめだろw
グダグダになるぞw
634login:Penguin:2011/05/15(日) 21:13:58.77 ID:CFcmlqIg
グダグダにするぞ!の間違いだろw
635login:Penguin:2011/05/15(日) 21:17:53.35 ID:UHIJLo/l
libgtk2.0-devをインストールしてなかったわ コンパイルできた
636login:Penguin:2011/05/15(日) 21:22:41.40 ID:3m8/J1/j
>>635
怒るでしかしwwww
637login:Penguin:2011/05/15(日) 23:53:02.86 ID:IS7vzHtp
>>634
1. パスの通し方でからんでるアホ
2. スレ違いのグダグダにからんでるアホ
3. >>637 このレス

同レベル。
638login:Penguin:2011/05/16(月) 06:50:27.01 ID:HgEV0miS
Gentooを使うとみみっちい*-devパッケージなんかで
悩まされずにすむんだけどなあ
639login:Penguin:2011/05/17(火) 07:03:27.38 ID:17NbAwxj
HTML5バックエンドにはびびった。
これは、GTK+アプリがサーバーで動いていてクライアントでは<canvas>で
表示しているだけって事かな。
HTML5対応ツールキットとか沢山出てきそうだけど、やっぱりGTK+は最初から
完成度高いものが使えるから、かなりのアドバンテージになるはず。
インストールしなくてもWindows上でGTK+アプリが使える訳だから最高だな。
640login:Penguin:2011/05/18(水) 01:14:48.22 ID:zz1Ry4tA
既存のGTK+アプリケーションを応用したクラウドサービスの予感
641login:Penguin:2011/05/24(火) 08:34:07.83 ID:KqvnTjTM
GTK+2で、Cairoを用いて一回の描画に非常に時間がかかるもの(例えばマンデルブローとか)を描画して、
GTKのDrawingAreaに表示するにはどうしたらいいんでしょうか?
直接DrawingAreaのGdkwindowにExposeイベント毎に描画するようにすると当然破綻します。
GTK+2だとCairoのSurfaceに描画してそれをPixbufにするというのもできない感じなので困ってます。
642login:Penguin:2011/05/24(火) 17:28:30.93 ID:ob7Yh9v7
GdkPixmapに描画して、ウィンドウ再描画のときはそこから転送する。

むしろGTK+3でGdkPixmapがなくなって、オフスクリーンなpixmapを
どうやって持つのか知りたい。
オフスクリーンなGdkWindowというのがあるらしいから
それを作ってpixmapとして使えということなのだろうか。
643641:2011/05/24(火) 17:47:47.35 ID:SHDVYoHh
>>642
ありがとうございます。
使ってる言語のバインディングが+2用なので仕方なく+2を使ってますが、今から使うアプリに
GdkPixmapは使いたくないので、他に手段ないでしょうか?
+2でも、CairoのSurfaceをGdkWindowにコピー?できるのが理想なんですが。

ちなみに、+3では
http://developer.gnome.org/gtk3/stable/ch25s02.html#id1407324
によればCairoのSurface使えってことだと思います。
644login:Penguin:2011/05/25(水) 22:49:33.40 ID:ypXSp7WE
>>643
http://zetcode.com/tutorials/cairographicstutorial/cairoimages/
の「Blind down effect」でできるようですよ

簡単に要約すると
関数cairo_image_surface_createでオフスクリーンなsurfaceを作って、そこに落書きし、
eexposeイベント内で関数cairo_set_source_surfaceを呼び出して落書き結果をコピーするという方法だそうです
645login:Penguin:2011/05/26(木) 01:09:20.52 ID:/us7JkTi
GTK+3とかマジ迷惑なんですけど。
646641:2011/05/28(土) 02:19:42.28 ID:cDNuTVbD
>>644
ありがとうございます、それでやってみます。
647login:Penguin:2011/05/29(日) 20:26:57.86 ID:zJJLH/V3
GtkTableにアタッチしたウィジェットのパディングを変更したいんですが
gtk_table_attach()を変更の度に呼んでも問題ないですか?
それともパティングを手軽に変更できる手段って他にあるでしょうか。
648login:Penguin:2011/05/31(火) 20:26:42.71 ID:Bc3stUR8
>>647
GtkAlignmentでどうですか?
例えば、GtkButtonのパッディングを変更できるようにしたいなら、

button = gtk_button_new_with_label( "Button 2" );
align = gtk_alignment_new( 0, 0, 0, 0 );
gtk_container_add( GTK_CONTAINER( align ), button );
gtk_table_attach( GTK_TABLE( table ), align , 1, 2, 1, 2, GTK_SHRINK,
GTK_SHRINK, 0, 0 );
でButtonを登録し、

gtk_alignment_set_padding( GTK_ALIGNMENT( align ), 5, 5, 10, 10 );

で調節します。
649648:2011/05/31(火) 20:30:44.34 ID:Bc3stUR8
>>648の追記です。
参考にしたURLは
http://www.gtkforums.com/viewtopic.php?t=3220
です。
650login:Penguin:2011/06/02(木) 12:20:53.31 ID:9ZkW8466
>>648
ありがとうございます
GtkAlignmentでもパディング変更できましたが
GtkTableのchildrenの中の該当ウィジェットを格納した
GtkTableChildのx/ypaddingを変更することでもできるようです
651login:Penguin:2011/06/03(金) 01:41:05.64 ID:UsW+bpf/
652login:Penguin:2011/06/04(土) 06:32:58.20 ID:DoiP0avE
スレッドA,BにおいてAからBを終了させるpthread_close()に相当する処理を行う方法がgtkには無い。
653648:2011/06/04(土) 17:42:05.97 ID:lYXnt5Pq
>>650
お役に立てずにすみません。GtkTableChildを使った方がスマートですね。

ところで、Gtk 2.0のリファレンスにGtkTableChildクラスの説明がみつからないのですが
どこにあるか教えていただけませんか?
Gtk 1.0のほうは見つけたのですが、Gtk 2.0の方では見つかりません
654login:Penguin:2011/06/05(日) 12:08:13.55 ID:2//sPV3W
公式の3.0のリファレンスにも無いですね
もしかして直接触っちゃだめなのかもと思ったけど
childrenにテーブルの中身がって書いてるしヘッダみろってことなのかも

ところで画面解像度の変更やテーマの変更の感知はどのイベントを
受け取ればいいのか教えてください
655648:2011/06/06(月) 22:48:57.79 ID:Rnm0L+uO
>>654
>>childrenにテーブルの中身がって書いてるしヘッダみろってことなのかも
なるほど、そういうことなんですね。

ところで、解像度の変更イベント処理はGdkScreenのsize-changedイベントで処理できます
参考URLは
http://www.gtkforums.com/viewtopic.php?p=3643
です。

それとテーマの変更イベントですが、すみませんが僕にはわかりませんでした。
下記のURLによると、テーマ変更時に変化するオブジェクトのイベントを
すべて監視すればいいらしいのですが…
http://www.gtkforums.com/viewtopic.php?f=3&t=3829&p=10165&hilit=theme+change+event#p10165

656login:Penguin:2011/06/06(月) 23:39:42.74 ID:X0ciCI4s
>>655
ありがとうございます

テーマの方はこんな感じでできそうですね
ちょっと試してみます
https://garage.maemo.org/plugins/ggit/browse.php/?p=modest;a=commitdiff;h=5879161f031517a16b4c516e90700b647cb62b1e
+ g_signal_connect (G_OBJECT (instance), "notify::style", G_CALLBACK (on_notify_style), (gpointer) instance);
657login:Penguin:2011/06/09(木) 00:26:33.80 ID:z+T6y5Hb
UbuntuLinuxを使っていると、
ラブハンドルになるスクロールバーとならないスクロールバーがあるんだけど違いはなんなの?
658login:Penguin:2011/06/10(金) 23:26:43.28 ID:PqNxIzez
>>656
私のほうでも試して見ましたが、
それでテーマ変更イベントの検出はできるようですね。
しかし、notify::styleイベントがgtkリファレンスに見つからないw
何のイベントなんだろう?

>>657
ラブハンドルになるアプリ名とならないアプリ名を書けば、
誰かが調べてくれるかも?
659 忍法帖【Lv=5,xxxP】 :2011/06/12(日) 17:23:21.85 ID:JGUSf8uW
俺のためのスレはココですか?
660login:Penguin:2011/06/12(日) 17:46:23.37 ID:Nl9cfmmH
>>659
いいえ、違います。
661login:Penguin:2011/06/22(水) 01:11:00.53 ID:c+3U0RiB
debhelpを日本語化するプロジェクトはもう立ち上がっているのでしょうか?
662login:Penguin:2011/06/22(水) 01:11:44.45 ID:c+3U0RiB
devhelpです
663login:Penguin:2011/06/28(火) 00:26:26.50 ID:eerWK6Uv
ttp://mugtug.com/sketchpad/
↑これ有名なHTML5のデモだけど、
ttp://blogs.gnome.org/alexl/2011/04/18/broadway-update-3/
GTK+3.2がリリースされれば、↑こんな感じに同じ事が出来るようにのか?
wktkが止まらない!
664login:Penguin:2011/07/01(金) 01:05:56.23 ID:GKt7GreK
cairoは死んでしまったのか…
Firefoxに見捨てられ更新もほとんど無い
665login:Penguin:2011/07/01(金) 01:22:39.19 ID:qaXNzYOT
>>664
gitのログ見たけど更新しまくってね?リリース見ても5月中にも
pycairoとかcairommとかバインディング関係が更新あるしcairo自体は既に成熟期だろ
それとIDが惜しい
666login:Penguin:2011/07/03(日) 08:27:55.42 ID:xZFICtED
ttp://lists.cairographics.org/archives/cairo-commit/2011-June/thread.html
↑ここ見て少なく感じた。半分近くはコードでないコミットだし。
667login:Penguin:2011/08/01(月) 00:38:35.73 ID:rgARQ4qL
GtkDrawingArea を自分で XCreateWindow して作りたい時ってどうすればいいか教えてください。
668login:Penguin:2011/08/02(火) 00:30:46.57 ID:px2Xwp7s
自己解決した。
Gdk.X11Screen.lookup_visual () とか使えば、自分で XCreateWindow () する必要とかなかった。
669login:Penguin:2011/08/22(月) 09:44:31.31 ID:56fggY27
GtkEntryCompletion のポップアップの最大高さ?を設定する方法おしえてくだしあ
http://up3.viploader.net/pc/src/vlpc008412.png
デフォだと↑みたいに画面の高さいっぱい一杯までスクロールバーがついたポップアップが表示されてしまいます
670login:Penguin:2011/08/22(月) 12:32:55.24 ID:GUjzssRW
そんなAPIは無いように見えるから
どうしても欲しければ自力でGtkEntryCompletion相当のコードを書くことになるのかなぁ
671login:Penguin:2011/08/23(火) 10:55:05.34 ID:fF4RpR06
>>670ありがとうございます。
_GtkEntryCompletionPrivate構造体の定義がわからないので諦めました
672login:Penguin:2011/08/24(水) 18:38:06.52 ID:CLJ7sudj
g_signal_connectでコールバック関数に渡せるデータって一つしかないですよね
でもどうしても複数のデータを渡したい時ってどうするんですか?

例えば,main関数内でエントリーが3つとボタンがあって,
ボタンを押したら3つのエントリーに入力されている文字列をg_printで出力する場合とか

初歩的な質問かもしれないけど,お願いします
673login:Penguin:2011/08/24(水) 18:57:38.20 ID:tAkTiKbP
>>672
構造体とか使って渡したいデータを1変数にまとめて、
コールバック関数にはその構造体のポインタ渡すのはどうかな
http://pastebin.com/UXyRbuJf
674login:Penguin:2011/08/24(水) 19:04:11.50 ID:CLJ7sudj
>>673
ありがとうございます

やっぱりそれしか無いですか...
なんで可変じゃなくてわざわざ一個だけなんだろうなあ
675login:Penguin:2011/08/24(水) 19:10:25.09 ID:tAkTiKbP
自分でラッパー書いて、可変引数版のg_signal_connectを自由につくってもいいのよ〜

一般的に複数引数渡すよりポインタ1個渡す方が効率的、と考えられてるんじゃないかな
普通は渡したいデータの型も文字列だけじゃないだろうし、Cだと型が予測できない可変引数を処理するのは面倒だと思う
676login:Penguin:2011/08/24(水) 19:20:10.95 ID:CLJ7sudj
>>675
調べてみると可変引数って色々問題あるんですね,知りませんでした
ラッパーって言葉も今知りました

勉強になります
677login:Penguin:2011/08/24(水) 19:40:28.68 ID:fAbet21j
>>672
・そのEntry3つをGHashTable につっこんどいて それをコールバックの引数にする
・そもそもGtkBuilderオブジェクトでつくったUIなら それをcbの引数にする
 GTK_ENTRY (gtk_builder_get_object (builder, "ボタンの変数名")) で取れる
・前もってそれぞれのEntryにgtk_widget_set_name(entry,"しきべつめい")しといて
 gtk_container_get_children (GTK_CONTAINER (window)) で取れる GList をcbの引数にする
 cb関数側でg_list_nth_data つかって先頭からアクセス、gtk_widget_get_name(entry)でとれる名前を確認しながら扱う

三通り思いつきました、どうでしょうか?
678login:Penguin:2011/08/25(木) 00:14:37.53 ID:IvAnECIo
2.0用コードを3.0でコンパイルしたら、gdk_pixuf_render_to_drawable()で問題発生しました。

main(){
gtk_init(NULL,NULL);

GdkPixbuf* pixbuf;
GtkWidget* image;

gdk_pixbuf_render_to_drawable(
pixbuf,
image->window,
image->style->fg_gc[GTK_STATE_NORMAL],
0, 0, 0, 0,
100,
200,
GDK_RGB_DITHER_NONE, 0, 0
);
}

gtk+-3,0でコンパイルすると、image->window, image->style, GDK_RGB_DITHER_NONE、の3箇所がエラーになってしまいます。
だれか解決してください。
679login:Penguin:2011/08/25(木) 07:33:21.51 ID:3JebkG67
3.0の方針として、直接メンバー変数にアクセスしない事になったんで、
それぞれ、set_window, get_window みたいなアクセサ経由に変更すればOK
680login:Penguin:2011/08/25(木) 08:20:25.79 ID:Yioj7fNN
>>678 下記サイト 中段 "GdkDrawable is gone" によると
「GTK+3において GdkDrawable,GdkPixmap,GdkImage は削除された。代わりに cairo_surface_t,GdkPixbuf を使え」
とあります。承知の上での質問でしたらすいません
http://developer.gnome.org/gtk3/3.1/ch25s02.html
681login:Penguin:2011/08/25(木) 15:58:01.07 ID:67oz2wuj
>>677
GHashTableを使うのが一番楽そうですね
参考になりました,ありがとうございました
682login:Penguin:2011/08/26(金) 09:59:15.55 ID:lIEWgrKL
dat復帰しろ
683login:Penguin:2011/08/26(金) 18:45:59.14 ID:miWeYAjd
>>679,680
どうやらgtk+3は描画の高レベル部分をcairoに置き換えたがってるようなので、
素直にgdkによる描画をcairoで書きなおすことにします。
684login:Penguin:2011/08/27(土) 18:18:33.00 ID:rt71f+c2
まーたスレ一覧dj
http://up3.viploader.net/pc/src/vlpc008460.png
今日はグラフを書く練習をしました。部品化はまだ先が遠いなあ orz
685login:Penguin:2011/08/30(火) 03:41:36.85 ID:KLnazqo8
GTK+2で使用可能な2D plotterにはどんなものがありますか?

GTK+3にも移行できそうなものでオススメがありましたら教えてください
686login:Penguin:2011/08/30(火) 10:24:20.53 ID:5PScM+cr
あんたの言う「2D plotter」とは何なのかをもうちょっと調べなさいよ
「大判プリンター」で目的に合うならこちらを勧めるよ
どうしてもプロッターならその理由が判らないと始まらないし
GTK関係ない話にもなる
687login:Penguin:2011/08/30(火) 10:55:15.61 ID:9Gn96LUV
ベクトルDrawとかのライブラリの亊じゃね?
gnuplotとかmatplotとかそういうの。
わからい人にはグラフ書くライブラリって言ったほうがいいのかな?
688login:Penguin:2011/08/30(火) 11:18:58.63 ID:KLnazqo8
仰る通りライブラリのことです、GUIプログラミングのスレでの発言ですからね
それじゃ調べたものを書きますね
・plplot5.9.6
 古い環境を意識してるのか8-bit色制限?cairoが普通に扱えて且つPostScriptも吐けて好印象
 ただ関数群が使いにくい印象
・GtkExtra3.0.1(beta) の GtkPlot
 こちらはdemoを動かしただけですが若干もっさり描画?
 cairoすらwrappingしてるからからか?

他にあればそれも検討してその上で使うものを決定したいのです
689login:Penguin:2011/08/31(水) 00:52:22.06 ID:n3SEIKnI
http://stackoverflow.com/questions/915940/python-plotting-libraries
http://wiki.python.org/moin/NumericAndScientific/Plottinghttp://wiki.python.org/moin/NumericAndScientific/Plotting

最近だとRとか使ってるイメージはあるけど
この辺昔からあるからね。どうしてもラッパーライブラリは多くなっちゃうよね

Q: Does pychart support Windows?
Yes. But you need to install Python and Ghostscript beforehand.

pychartとかどうかな日本の人だよ名前から判断すると
690login:Penguin:2011/08/31(水) 15:52:48.56 ID:STiWeB5m
>>689
ありがとうございます。出来ればCで使えるGTK+のwidget又はcairo_tに描画できるものでお願いします。。
グラフの枠,軸ラベル,グラフ自身,凡例
これらを書ける関数が用意されてると嬉しいです。cairoでガリガリ書く奴はgnome-system-monitorを参考にして
書きましたが何か違うなと感じました、「もっと楽できるものあるだろう」と

Rって言語は初めて知りました。R-devel入れてみましたが GtkDrawingAreaやcairo_tに書く方法が判らず断念しました
pychartはpython使う時は使ってみようと思います
691login:Penguin:2011/09/06(火) 20:57:43.09 ID:JODXyz/L
gtk_image関連で、プログラム内でファイルを指定して画像を用意する関数はありますか?
gtk_image_new_form_fileなどのように起動するときに指定するのではなく
プログラム内で指定したいのです
692login:Penguin:2011/09/06(火) 21:09:41.30 ID:h7bDDi3V
get_image_set_from_file
693login:Penguin:2011/09/06(火) 23:45:05.53 ID:JODXyz/L
>>692
すみません、それの具体的な使い方を教えてもらえないでしょうか?
その後に続く()の中には何を入れればいいのでしょうか?
devhelpを見ましたが、書いてある通りに入れるとコンパイルエラーが出ます

gtkwidget *image;
image = gtk_image_set_from_file (GtkImage *image,
                    const gchar *filename);

↑の*filename のところにファイル名を入れるのでしょうか?例えばaaa.png等
*imageのところも何か入れるのでしょうか?
694login:Penguin:2011/09/07(水) 00:10:39.05 ID:OQwTGmux
gtk_image_new_from_fileでなんでだめなの
695692:2011/09/07(水) 00:54:07.56 ID:QF3RPTD4
>>693
get_ じゃなくて gtk_ ね。俺の書き間違い


ttp://wingtk.sourceforge.net/ishan/sliders.html
ページ内で gtk_image_set_from_file で検索して
696login:Penguin:2011/09/07(水) 01:59:10.86 ID:T6UTzAz+
>>693
gtk_image_set_from_file()使ってjpegでぱらぱら漫画作った
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/parapara_manga.git

いっしゅのモーションJPEGwww
697login:Penguin:2011/09/07(水) 11:01:37.48 ID:s/CIYWHm
>>696
何かの折にヘッダファイルとして使わせてもらいます
698login:Penguin:2011/10/03(月) 10:40:33.28 ID:DltdAdh6
>>696さんのリストを一部改変してボタンを押されたら次の画像を表示するというふうにしたいのですが
上手くいきません
ボタンのシグナルコネクトをflipという関数に接続したのですが
関数が反応してないようです
どうすればいいか教えてください
改変したリストです↓
http://www1.axfc.net/uploader/Sc/so/280374.c
699login:Penguin:2011/10/03(月) 10:45:19.78 ID:DltdAdh6
すいません、元のリストをアップしてしまいました
正しくはこちらです(ファイル名をimage2.cに変えました)
http://www1.axfc.net/uploader/Sc/so/280375.c
700login:Penguin:2011/10/04(火) 05:43:43.88 ID:OMJjY+ZZ
>>700
ちょちょと換えてみたから見てみて
http://www1.axfc.net/uploader/Sc/so/280675.c
devhelpってヘルプビューア入れて GtkButtonの説明読むのおすすめ
「The "clicked" signal」 てとこにclickedシグナルハンドラのシグネチャが書いてあるよ
>>699が元々書いてたハンドラとシグネチャが一致してなかったみたい

それと初回クリック時の画像ファイルインデックスは0番じゃなくて1番にしといた
701login:Penguin:2011/10/04(火) 05:45:48.43 ID:OMJjY+ZZ
指示レス番まちがえたけど  訂正しねーよ!(我が家杉山)
702login:Penguin:2011/10/04(火) 12:32:09.76 ID:VseFFwAj
>>700
動きました、どうもすいません
703login:Penguin:2011/10/04(火) 22:44:16.96 ID:OMJjY+ZZ
謝る必要はこれっぽっちもないけど
「動けばいい」とかいう低い志は捨てようや
704login:Penguin:2011/10/17(月) 00:11:29.94 ID:OFrElfAX
ボタンを押されたときに、シグナルコネクト先を変更したいのですが
if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない)
ボタンを押されたら、シグナルコネクト先を変更するにはどうすればいいのでしょうか?
705login:Penguin:2011/10/17(月) 03:57:34.59 ID:jBv5AccH
>>704
> if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない)

コード見ていないので確かなことは言えませんが、
g_signal_handler_disconnect()とg_signal_connect()を使えばきっと出来ますよ(やってみたら出来た)
code snippestでも貼ってくれたらアドバイスもできたかと思いますが情報が不足していましたので
「ボタンを押されたら、シグナルコネクト先を変更する」というサンプルを書いてみました。ので参照みて下さい

http://www1.axfc.net/uploader/Sc/so/284339.c

main関数内とハンドラ内で共用する変数についての渡し方は
・g_object_set_data()を利用して渡す方法
・g_signal_connect()の最後の引数にGHashTableを指定して渡す方法
・大域変数として宣言しておく方法(この程度の場合は悪手かな?)
の3通り思いつきましたが1番目の案で記述しました。書き方はいろいろあります
706login:Penguin:2011/10/17(月) 17:36:59.12 ID:OFrElfAX
>>705
ご親切にありがとうございます
解読してみます
707login:Penguin:2011/12/26(月) 12:41:35.30 ID:Jg1bu6au
GTKとcarioとpangoの関係を教えて下さい
708login:Penguin:2011/12/27(火) 02:22:40.60 ID:4qSP4mDf
なんと、全部文字数が奇数です。
709login:Penguin:2012/02/12(日) 21:52:16.17 ID:vrKTadjR
710login:Penguin:2012/03/13(火) 01:46:49.13 ID:3Ugm7oRN
ウィキ作った
http://monobook.org
711login:Penguin:2012/03/13(火) 23:30:30.92 ID:XEqUJYrf
ぼくもつくろっと。
712login:Penguin:2012/03/20(火) 06:02:28.11 ID:jPw9I0u0
http://cairographics.org/
http://cairographics.org/news/cairo-1.11.4/
ぬぉ!死んだと思っていたcairoに新バージョンのニュースが!
FirefoxはLinux版も自前のOpenGLレンダラーに移行しつつあるから、
今更4倍速くなったって言っても悲しいけど、GTK+は間違いなくかなり速くなりそうだ。
713login:Penguin:2012/03/25(日) 06:47:03.05 ID:Bt4mNkdj
http://cairographics.org/news/cairo-1.12.0/
cairo-1.12.0がリリースされた。18ヶ月ぶりのメジャーバージョンアップらしい。
個人的にはGTK+の描画がどれだけ高速化されたかが気になるな。
714login:Penguin:2012/03/25(日) 09:54:04.27 ID:1P7W2wf1
>>713
>どれだけ高速化されたかが気になる

cairoで何をしようとしてるの?
715login:Penguin:2012/03/25(日) 18:58:57.29 ID:3RGnGf+l
何をしようとしてるかが関係あるの?
716login:Penguin:2012/03/25(日) 21:27:14.92 ID:rI7Awxch
正直に白状するが、
glageのuser dataの使い方がわからないまま
実務で開発しちゃったりしてます。
717login:Penguin:2012/03/25(日) 21:35:56.39 ID:FgoOLGO6
あと、ラジオボタンとか、配列可して、コールバック関数を一つに
まとめる方法もわからないまま
一個一個書いてます。
とほほ
718login:Penguin:2012/03/28(水) 08:35:06.02 ID:ThQeaUjt
EmacsとかVisual Studioみたいなマルチストロークのキーバインドって
GTK+でできますか?
719login:Penguin:2012/03/28(水) 11:02:58.95 ID:he0UMBAC
GTK+はEmacsで使われています
720login:Penguin:2012/03/28(水) 20:02:18.92 ID:ThQeaUjt
GTK+はEmacsではキーイベントの処理に使われていません
721login:Penguin:2012/03/28(水) 20:41:18.94 ID:R04800Nw
( ゚Д ゚)
722login:Penguin:2012/03/29(木) 22:20:44.47 ID:GJB1hQRo
cairoが高速化ってことはeclipseも早くなるのかね
723login:Penguin:2012/03/29(木) 22:37:41.77 ID:CN8scaWa
anjutaを使ってみたところ
gtk_signal_connectだと警告なしでコンパイルできるのに
g_signal_connectだと暗黙的関数宣言のエラーになるんですが
どうやったら直せるでしょうか?
724login:Penguin:2012/04/02(月) 18:01:59.91 ID:BFIgJvs2
どんな呼び方したのか書いてくれなきゃわからん
一番いい解決方法は DevhelpっていうGUIヘルプビューワ入れて g_signal_connectの説明読むこっちゃ
ver.も気にせずに例を書くとシグネチャ違うみたいだねそれが一番幸せになれる
725723:2012/04/03(火) 21:46:17.80 ID:gvKF9Ts9
よく確認してみたところエラーになるのはgtk_signal_connectのほうで
GTK3.0で使われなくなっていて代わりにg_signal_connectを使えと書いてありました
http://developer.gnome.org/gtk/stable/gtk-Signals.html#gtk-signal-connect
726login:Penguin:2012/04/15(日) 02:03:04.26 ID:Z1/ZfeAU
threadやmutex関係もgtk_の方は廃止になって、g_の方のみになった。3。0あたりから
基本的な関数はglibに集約して、ツールキット的な関数のみgtk 3で担当するように住み分けされた
コンパイルの最中に廃止された関数と表示がでるソースは、いずれソースを書き換えないとビルド不能になる
ちなみに最も基本的なlibcでも現在開発ラインの最新版だとgetsが本当にソースから廃止されてるので、getsが使われてるソースをビルドできなくなってる
727login:Penguin:2012/04/15(日) 08:43:51.29 ID:khsJyTTq
ガチで使えないキット(GTK)
728login:Penguin:2012/04/22(日) 21:22:17.78 ID:ZPy8N610
UGS
Never use gets().
729login:Penguin:2012/05/03(木) 19:08:20.54 ID:2lAo9jqg
フォントサイズって10.5ptとか小数点で設定できる?
730login:Penguin:2012/05/04(金) 06:17:57.12 ID:phIzEGLj
フォントサイズの指定方法がわかってて
小数点の指定ができるかって疑問なら
やってみて自分で確認すりゃいいのに。
731login:Penguin:2012/05/04(金) 11:44:12.10 ID:LzE47Zaa
型がguintみたいだが
732login:Penguin:2012/05/04(金) 14:24:41.51 ID:86E5ktal
それがどうした
733login:Penguin:2012/05/09(水) 14:47:56.27 ID:M8lWcVDx
Gtk.TreeView.Selection.Mode = Gtk.SelectionMode.Multiple;
に変更すると得られるGtk.TreeIterがおかしくなってしまう
のですが、Multipleの時はSelection.GetSelectedは使えない
のでしょうか?
734login:Penguin:2012/05/15(火) 22:46:57.21 ID:PyXbSQll
Gtk.Label page_label = new Gtk.Label (title);
page_label.KeyReleaseEvent += delegate {
Console.WriteLine("!"); //←呼び出されない理由を説明してほしい!
};
735login:Penguin:2012/05/16(水) 07:38:42.69 ID:1Jlqt6RC
gtk_widget_set_events()
736login:Penguin:2012/05/16(水) 21:45:01.79 ID:oMuQxzgz
GTKは親切ではないなーと楽をしてきただけに思いますw

>>735
ありがとうございます
しかし、それらしいのが見つかりません
737login:Penguin:2012/05/23(水) 21:46:04.65 ID:jdgnkMvj
GTKのGUIは更新をサボる癖があるようですが
無理やり更新させる方法はないでしょうか?
738login:Penguin:2012/05/23(水) 21:50:35.79 ID:jdgnkMvj
更新するWidgetを間違えてた!
解決
739login:Penguin:2012/06/08(金) 19:02:58.11 ID:BmPo410Y
Gtk-CRITICAL **: IA__gtk_main_quit: assertion `main_loops != NULL' failed

メインループ内でGtk.Application.Quit ();を呼ぶなって事だろうけど
終了させる方法はないのでしょうか?
740login:Penguin:2012/06/08(金) 20:38:02.95 ID:6+ZFg73U
>>739

電源を切れば終了。
741login:Penguin:2012/06/09(土) 03:50:44.00 ID:xIQyunsc
gtk_main_quit()のソースコードを読めば解決。
742login:Penguin:2012/06/10(日) 07:41:42.40 ID:NypXeHdm
>>739
launcher みたいの作ろうとしてるんだろうか…
いまいちどういうことなのか判らないんだけど

logメッセージを抑制したいなら glib 2.32から

http://www.mail-archive.com/[email protected]/msg06039.html
G_LOG_LEVEL_CRITICAL
log level for critical messages, see g_critical(). This level is also
used for messages produced by g_return_if_fail() and g_return_val_if_fail().

ある程度デフォルトだと出力されなくなるみたい
onにするときは環境変数G_MESSAGES_DEBUG=allで以前と同じ動作になるらしい
743login:Penguin:2012/07/04(水) 15:28:28.70 ID:RZglH82u
from gi.repository import Gtk
744login:Penguin:2012/08/07(火) 21:52:39.08 ID:4kcOLz8m
このスレ的にはGTKのものをそのまま叩くっていうのは危険なこと?
745login:Penguin:2012/08/08(水) 21:32:46.85 ID:heEHx4e5
意味わからん。
746login:Penguin:2012/08/09(木) 02:30:11.31 ID:IoAeP/Ow
バッシングだな
747login:Penguin:2012/08/09(木) 09:21:30.12 ID:n/9/m8Sd
え?ラッパーライブラリを介さず直接コールするって意味じゃないの?
748login:Penguin:2012/08/09(木) 22:47:55.45 ID:Q1A6/Eca
>>747
そのとおりです
749login:Penguin:2012/08/09(木) 22:57:00.84 ID:P67COA3s
Exactly
750login:Penguin:2012/09/11(火) 19:25:22.84 ID:AmLZmZH+
取り敢えずgtk_main_quit()
751login:Penguin:2012/11/27(火) 12:00:27.00 ID:Mwv1yHjg
UbuntuでPyGTKを利用してアプリケーションを作っているのですが、一部パーミッションが与えられていないファイルへの書き込みを行いたいと考えております。

Ubuntu Software Centerからアプリケーションをインストールしようとすると、Authenticateというポップアップが出てきてパスワードを入力するとsudoの様にアプリケーションのインストールができますが、これはどのように実現しているのでしょうか?

自分でも書き込めるようにパーミッションを変更していることを前提にしているのですが、変更方法を知らない人や、一々変更した後にアプリケーションを起動するのが煩わしい人向けに、アプリケーションからsudoのようなことができないかと考えております。
752login:Penguin:2012/11/27(火) 23:24:04.63 ID:p3EAvFxY
>>751
pyは使えないのですが、この話はGTKのスレの質問でしょうかね?
Cだったらstatとchmod使うところじゃないかと。
753login:Penguin:2012/11/27(火) 23:44:47.91 ID:2Faa51y/
>>751
もしかして:gksu

$ sudo command
のかわりに
$ gksu command
ってやると
GUIでパスワード聞かれる
754login:Penguin:2012/11/28(水) 00:24:58.73 ID:JU9FPiAT
口下手な>>753は、gksuを参考にlibgksuを使えと言いたいんだな?
libgksuのpythonバインディングもあるから安心だって言いたいんだよな?
755login:Penguin:2012/11/28(水) 16:35:00.90 ID:a6DQ5WYq
polkit
756login:Penguin:2012/12/02(日) 14:08:52.19 ID:jmMYkF+D
>>754
ナイス翻訳
757login:Penguin:2013/02/09(土) 09:31:18.23 ID:cnWShbXp
質問させてください。
gtkmm2.4ベースでプログラムをいじっているのですが、画面操作せずにGtk::Dialogを閉じる方法が分かりません
Dialog作成→threadで特定の処理を開始→処理終了→※Dialogを閉じる(画面操作せずに)
と言う流れをプログレス表示などをして処理したいのですがrunした後にresponseをしてもhideしてもDialogが消えません
根本的に分かっていないのでしょうが・・・上記のような処理をするにはどうしたら良いのでしょうか?
758login:Penguin:2013/03/07(木) 14:11:29.83 ID:QnTnog/x
こう書く方法ないかな?
public class Window :Gtk.Window{
}
759login:Penguin:2013/03/07(木) 16:21:44.64 ID:19LddT7Q
>>758
valaをつかえばいいと思うよ
760login:Penguin:2013/03/08(金) 18:55:04.44 ID:Eqvj3fL9
vala優秀そうだね
でもwindowsでも使いまわしたいのでmonoから外れたくない
761login:Penguin:2013/03/13(水) 09:34:23.06 ID:EMo1WQCk
>>760
valaはwindowsでも普通に使える。
762login:Penguin:2013/03/23(土) 10:23:11.54 ID:PyYsgXcc
Gtk::Dialogはon_delete_eventを呼ばないのですか?
処理が途中の場合とかにダイアログを閉じるのを中止したいのですが、何処で中止させたらいいのやら
763login:Penguin:2013/03/23(土) 16:14:11.15 ID:oI1eFSYR
ちょっとチャレンジしてみることにしました
FreeBasic導入したら、GTK+とCairoが入っていたので。
ネットとサンプルを参考にしながら、
ちょこちょこと弄ってみます。

お手軽に描写の綺麗なプログラムが書けるってことは素晴らしい。
764762:2013/03/23(土) 16:55:08.61 ID:PyYsgXcc
結局add_buttonで追加したボタンを使うのではなく、アクションエリアに普通のボタンを追加し、
connectしたメソッドで処理チェックを行なった後にresponseでIDを投げる事で一応動きは出来たみたいです。
もっと簡単な方法はないですか?
765login:Penguin:2013/05/07(火) 16:10:42.57 ID:6dLQJSLO
ちょっとスレチになるかもなんですけど、GTK使われたアプリをWindowsで自動操作したいのですが
WM_LBUTTONDOWNなどで座標を直接指定でやってるんですけどMenuBar以外が反応してくれないです
どうすればいいでしょうか?
766login:Penguin:2013/05/10(金) 02:01:44.26 ID:Jlh16O1w
Macで日本語入力が可能になりそう!Windows爆死www Linux憤死wwwwwwwwwwwwwwwww
http://engawa.2ch.net/test/read.cgi/poverty/1368116873/
767login:Penguin:2013/07/03(水) NY:AN:NY.AN ID:5x5esxXj
FreeWnn スレッドより:
http://toro.2ch.net/test/read.cgi/unix/1084551838/l50

457 :名無しさん@お腹いっぱい。:2012/07/05(木) NY:AN:NY.AN
gtk2アプリにkinput2で入力する場合に、kinput2のステータス表示の「[あ]」が
真っ黒になってしまう問題の解決法の俺様メモ。

gtk2のソースの、modules/input/gtkimcontextxim.cの
on_status_window_expose_event()関数が変更されたのが原因。

これを、gtk+-2.21.5(以前)のソースのgtkimcontextxim.cに戻せば桶。

modules/input以下のサブディレクトリだけmakeして、
できたim-xim.soだけ置き換えればよい。

ソースにバグありとみた。
768login:Penguin:2013/09/23(月) 01:43:22.12 ID:pt1QWlbc
http://www.tarnyko.net/en/
ここでWindows版のBroadway実行環境を配布してたから試してみたけど
遅くて使いものにならん…
asm.jsは良い感じなんで、GTK+アプリをそのままasm.jsにコンパイルして
ブラウザで実行出来るようにしてくれたら最高だがな。
769login:Penguin:2013/10/24(木) 11:46:06.77 ID:YHoA8g0Q
同一アプリ上で、IconViewからFrameとかImageへDrag &amp; Dropって
可能なんでしょうか・・・。

そんな感じのサンプルをご存知でしたら教えてくださいm(_ _)m
770769:2013/10/25(金) 16:54:19.59 ID:2AmnlVsx
すみません、>>769は出来るようになりました。
drop側の設定に問題がありました。

ところで、Imageから別のImageへのDrag & Dropは可能なんでしょうか。
Dragしても、IconViewの時のようにカーソルが変化しません・・・。
771login:Penguin:2014/05/24(土) 00:08:41.16 ID:jA6HOcWn
gtkmmでProgressBarの描画更新はどうやったらええねん
set_fractionしても途中を描画してくれない
772login:Penguin:2014/05/24(土) 01:19:23.19 ID:3aXipg2f
773771:2014/05/24(土) 09:12:07.41 ID:ESO9FbEd
>>772
それアクティビティモードというのと違う?
ナイトライダーをしたいわけではないんよ・・・
774login:Penguin:2014/05/24(土) 12:34:03.59 ID:3aXipg2f
>>771,773
set_fraction() で、その都度増分を変えて、すぐ更新したいってこと?
queue_draw() で、PrograssBar の on_draw イベントを呼んでみたら?
775771:2014/05/24(土) 14:58:12.72 ID:ESO9FbEd
>>774
はい、その通りです。お付き合い頂き有り難う御座います。
queue_draw()を試してみましたが、表示のされ方は変わりませんでした。
試したコードを貼り付けようとしたのですが、行数の制限で書けませんでしたので、部分的に書き込みます。
ググって見ているのですが・・・何かお気づきの点がありましたらよろしくお願い致します。

プログレスバーとボタンを配置し、ボタンが押された時に動くようにしました。
drawBtn.signal_clicked().connect( sigc::mem_fun( *this, &ProgressWindow::on_draw_prog ) );

void ProgressWindow::on_draw_prog() {
progBar.set_fraction( 0.0 );
for( int i=0; i<100; i++ ) {
progBar.set_fraction( (double)i/100.0 );
// progBar.queue_draw();
sleep( 1 );
}
progBar.set_fraction( progBar.get_fraction() + 0.01 );
}
776login:Penguin:2014/05/24(土) 16:46:51.13 ID:3aXipg2f
おそくなってゴメン、こんな感じでどうでしょう?
ttp://www.dotup.org/uploda/www.dotup.org5080741.gz.html
>>772 であげたチュートリアルのコードをいじったものです。

SpinButton の値を 0 から 100 (%)までの任意の値に変更して "Update" ボタンを押すと
ProgressBar の状態が変化します。

examplewindow.cc の on_button_update を見れば分かるかと思います。
777login:Penguin:2014/05/24(土) 17:31:46.88 ID:3aXipg2f
あれ? queue_draw() いらねーな。w
778771:2014/05/24(土) 22:15:14.18 ID:SrMGc3rQ
>>776
コードまで書いて頂き有り難う御座います。
コンパイルして動作を見ましたら、進捗状況の変化を確認できました。
しかしながらon_button_update内で下記コードのようなループを回しset_fractionするようにしてみましたら
相変わらず最後の表示だけするようです。実際の処理ではループを回して進捗状況をset_fractionします。
む〜もう少しネットをあさってみます。

void ExampleWindow::on_button_update()
{
m_ProgressBar.set_fraction( 0.0 );
for( int i=0; i<100; i++ ) {
m_ProgressBar.set_fraction( (double)i/100.0 );
m_ProgressBar.queue_draw();
sleep( 1 );
}
}
779771:2014/05/24(土) 23:11:20.28 ID:SrMGc3rQ
なんかそれっぽい動きになったけどこれでいいのかね・・・イベント強制執行みたいな

[変更前]
m_ProgressBar.queue_draw();
sleep( 1 );
[変更後]
usleep( 50000 );
while( Gtk::Main::events_pending() ) Gtk::Main::iteration( true );
780login:Penguin:2014/05/24(土) 23:56:02.23 ID:3aXipg2f
タイマー使って処理させるとか
http://www.dotup.org/uploda/www.dotup.org5081764.gz.html
781771:2014/05/25(日) 10:38:49.48 ID:OwNsCCvJ
タイマーか〜処理がスパゲッティーになりかけているから使いづらいんだよね
アクティビティモードの時は使いやすそう。
今少し弄っているんだけど、set_pulse_stepでステップ量設定しても反映されないな
782login:Penguin:2014/05/25(日) 13:02:49.60 ID:ujxKETx8
783login:Penguin:2014/06/08(日) 10:20:05.83 ID:kFAavqfc
ComboBoxでドロップダウンアイテムを選択した時に発生する
イベントってなに?
784login:Penguin:2014/06/08(日) 17:33:49.75 ID:lVyy6Wyn
signal_changed()
785login:Penguin:2014/09/22(月) 18:34:36.01 ID:eWn3ghjY
本当は先にこっちへ書くべきだった。
gtk_mode
gtk_fashion
gtk_style
gtk_pattern
786login:Penguin:2014/10/03(金) 20:31:58.89 ID:3j8hGaDn
みなさん、人工言語の
高級低級の長所短所のチンチンはご存知?
787login:Penguin:2014/10/04(土) 21:22:31.83 ID:PLRFhsu2
>>786
日本語でOK
788login:Penguin:2014/10/05(日) 09:12:43.76 ID:6cVZzLYB
技術系スレには自分で人口無能を作っちゃう人もいるからな。
>>786が人間とは限らないよ
789login:Penguin:2014/10/05(日) 12:54:17.13 ID:8NkrJ1Fe
かわいいかっぽれ
790login:Penguin:2014/10/05(日) 14:16:26.58 ID:8NkrJ1Fe
人の嫌がる事をすすんでしましょう
791login:Penguin:2014/12/27(土) 20:58:23.25 ID:FwEwRAao
すみませんが質問させてください
gtkmmでボタンを作りボタンを押された時にソケットで通信しようとしたのですが
select関数をした時に「リソースが一時的に利用できません」と出てしまい動きません
コンストラクタでselect関数を使うと動くのですが・・・
gtkmmに通信を阻害する要因とか有るのでしょうか?
792login:Penguin:2014/12/28(日) 23:07:33.76 ID:aGqgOq87
学校の課題でシューティングゲーム作ってるんですが、cairoで表示した複数の画像の手前、奥の位置関係を変えることってできますか?
793login:Penguin
はい。