1 :
login:Penguin :
2007/09/05(水) 13:58:46 ID:2SORZMjm
3 :
login:Penguin :2007/09/05(水) 14:16:20 ID:2SORZMjm
何か見ないなって思ってたら落ちてたのか。 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ファイルが開けないので注意。
>>5 使えるな〜と思ったら、gladeの開発版を使っているのですね。
情報Tnx
GNOME-2.20でanjutaが入らないみたいなので残念です。
まあまだ使いにくい所もあるしね。個人的にはもうちょっとScintillaベースの エディタのフォント設定をもうちょっと楽にしてもらいたかったり。 後GtkBuilderに早い所対応してくれないかな。まあこれはGlade待ちなんだけど。
8 :
login: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です。
コンパイルオプションに `gtk+-2.4 pkg-config --cflags --libs` 付け加える
>>9 ありがとうございます。
gcc hoge.c `pkg-config --cflags --libs gtk+-2.0` でいけました!
--libsのはpkg-config --list-all の中から選べばいいんですね。凄い。
gladeだと色んなファイルがごちゃごちゃしてるので、
1ファイルでコンパイル出来るのがちょっと感動的です。
11 :
login:Penguin :2007/09/15(土) 18:11:58 ID:l0zyDoAp
GTKのオブジェクトにMozillaを組み込むにはどうすればいいんでしょうか?
12 :
login:Penguin :2007/09/15(土) 22:43:40 ID:NKI8HvUy
昔のGTK1.2で作られている日本語がばけて表示されるソフトを 日本語対応させるのって難しいですか?
>>11 gtkmozembed
ってFAQレベルの気が・・・
14 :
login:Penguin :2007/09/16(日) 17:16:00 ID:szZ43l1O
GTKのアイコンってどのファイルに含まれてるのでしょうか? 画像がない時にでる赤い×印のmissingアイコンになるのですが ファイルがわかれば他のバージョンの高いディストリから 持ってこようと思ってます
Qtの方がおもしろいよ!!
2.12りりーす
>>17 icon-theme入れたら表示されました
どうもです
20 :
11 :2007/09/18(火) 09:46:06 ID:7RZGKs31
>>13 ありがとうございます。
gcc でmozembedをLINKするときのoptionってどなたかご存じないでしょうか?
>>20 $ pkg-config --libs firefox-gtkmozembed.pc
でいいんじゃない?
22 :
20 :2007/09/19(水) 08:33:16 ID:Sg4DTI1c
>>21 実行して mozillaのobject を gtk_container_add( ) するとエラーを吐いてまだ動作しませんがビルドできるようになりました。
ありがとうございました。
topやnetstatなどの基本的なCUIコマンドをGtkを使ってGUI化したものってないかな? TreeViewで簡単にsortを掛けることができるような... なければ自分で造ろうとしているのだけど、既存のものあれば参考にしたい。 TreeViewの各要素にlabelを埋め込んで、このlabelをCUIコマンドで得られる データーにあわせて変更するような、力づくなコーディングをしてみたんだけど もっとエレガントな方法はないものか...
24 :
login:Penguin :2007/09/19(水) 23:19:21 ID:HUCusNQ/
qtで充分じゃない?
>>23 topみたいなのだったらgnome-system-monitorとか?
>>25 ありがとう。ソースみてみるわ。普段gnomeじゃないんで盲点でした。
>>24 志村、スレタイスレタイw
Qtスレってあるんかね?
29 :
login:Penguin :2008/03/20(木) 13:39:07 ID:oScjO3eR
Firefox3別にGTK対応しなくてよかったんだがなぁ 統一感出たのはいいが見た目がしょぼい……
Linux 上でのGTK+プログラミングの本スレは、ここ? 廃れすぎてるよ。 プログラミング板に行った方がいいのかな? でも、プログラミング板のは、Windows限定だしな...
本来はム板でやるべきだろうな。 こっちでやりたいなら何か話題振ってみれば?
32 :
login:Penguin :2008/03/22(土) 21:13:17 ID:AyZW6HyO
それじゃあ みなさんの開発環境(IDE)は何を使ってますか? オレはAnjuta+glade もっと優れたIDEあるのなら教えてほしい
IDEは使っていない。SATAだから。(前半本当)
34 :
login:Penguin :2008/03/22(土) 21:37:55 ID:AyZW6HyO
>>33 ハイハイワラタワラタ
それで何をつかってる?
だからIDE使ってないってば。javaじゃあるまいし。
36 :
login:Penguin :2008/03/22(土) 21:59:17 ID:AyZW6HyO
>>35 吊れますか?
IDE(Integrated Development Environment:統合開発環境)
widestudioとか kylixとか
エクリプス、最近ようやくAUTOTOOLSと一緒に使う方法が分かってきた。 ANJUTAのヘルプナビは便利だけど他の部分はCDTのがよいからなあ。
でもちょっと本腰入れて書こうってなったときはIDE使うとかなり便利だよ。 ちなみに俺もanjuta+glade使ってる。 そういえば誰かGtkBuilderを使ってる人とかいる? 俺はまだlibgladeから抜け出せないよ。
>38の一行目は>35宛て
>>36 だから釣りじゃなくて使ってないと何度言えば。聞いたから答えただけ。
javaだとIDE使うケースが多いだろ?eclipseとかさ。
make gcc glade ・・・viでconfigure/makefileをゴリゴリだよ。
こんなん好きずきだろ。
IDE使ってないだけで釣り扱いとは……
俺Ubuntu 7.10使ってるんだけど、パッケージマネージャ(GUI)でインストール できるバージョンのAnjutaの動作がおかしいので仕方なくgeditのみ。 だれか必要なツールを含めたAnjuta環境の簡単なインストール方法知ってたら 教えてくれまいか。ネットを参考にしてソースから手作業でやろうとしたんだが、 複雑&面倒過ぎで挫折しますたorz
私は今は普通にUbuntu7.10でanjuta使えてます。 Ubuntu7.10のベータの頃は確かに挙動がおかしかったので しょっちゅう落ちまくってましたが。 入れたのは「anjuta」と名のつくパッケージと、wxGtkのdev関係のVer2.8を片っ端から。 ちなみに今はanjutaの新規プロジェクトで選択できるwxWidgetsプロジェクトが一番楽なので 頼り切ってます。
gedit GNOME端末 ddd
kylixなんて久しぶりに聞いたな…。
GTK+2の話もここでいいの?
いいんじゃない? つーかプログラム系のスレはどこも廃れてんだから あんまりわけることないよ。 ム板でって話もあるが そもそもLinuxからプログラミングの話抜いたら インスコの話しかのこらん。
anjutaをなんとか動かそうとむきになってたけど、自分はgladeが吐いたソースを ビルドできれば満足なことに気がついた。 gladeでぐぐって出てきたページを参考にやったら簡単にできたorz
2.13.Xからはgailが統合されるみたいだね。思い切ったことするなぁ
>49 glade2のソースを吐く機能っていうのは確かに手軽だけど、 吐くソースがobsoloteになってしまうとか、色々と不具合の温床になりそうだから、 glade3での機能廃止もしょうがないと思っちゃうんだよね。 所で、gtk-docで作る文書の国際化って結構めんどいね。 html2poと自作スクリプトで頑張ってみようかなって思ってるけど、 なかなかスマートにいかないや。
>>51 う〜ん、それなんかなかったかなぁ?どっかでみたような。すまん思い出せん。
53 :
login:Penguin :2008/04/29(火) 19:11:04 ID:26XTARAt
こんにちは 質問があります、gtkを使ったプログラミングをしたいのですが コンパイルがうまくいきません Vine Linuxを使っています。 % rpm -qa | grep gtk+ gtk+-1.2.10-0vl6 となっていますが % gtk-config gtk-config: コマンドが見つかりません. となってしまいます、なぜでしょうか?
vineってgtk1しか入ってないの? deb系はよく知らないけどdevelみたいなのが必要なのかね。
Vine が deb 系!?
>>53 vineの事は良くわからんけども、
見たところvine4.2では
gtk2-2.8.20-0vl3.2.i386.rpm
gtk2-devel-2.8.20-0vl3.2.i386.rpm
gtk2-engines-2.7.4-0vl1.i386.rpm
があるようなので、
>>53 の使ってるvineのver.はわからないが、
開発パッケージが入ってないだけなんじゃないのかね?
例えばgtk+-devel-1.2.10-0vl6.i386.rpmみたいな感じの…。
57 :
56 :2008/05/30(金) 13:16:35 ID:kzcW1sj3
って日付見たらひと月前の質問か… てっきり昨日質問したのかと…
58 :
login:Penguin :2008/05/30(金) 14:22:37 ID:ann5FY58
はじめまして。 gtkでプログラミングをしているのですが、うまくいきません。 01.jpgから10.jpgまでの数字の画像を使って クリックしたらカウントダウンさせようと思っています。 現在は、 GtkWidget *drawingarea; GtkPixbuf *pixbuf; pixbuf = gdk_pixbuf_new_from_file( "10.jpg", NULL); gdk_draw_pixbuf( drawingarea->window, NULL, pixbuf, 0, 0, 500, 350, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); gtk_widget_draw( drawingarea, NULL); sleep( 1); pixbuf = gdk_pixbuf_new_from_file( "09.jpg", NULL); gdk_draw_pixbuf( drawingarea->window, NULL, pixbuf, 0, 0, 500, 350, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); gtk_widget_draw( drawingarea, NULL); sleep( 1); のようにしていますが、うまく1秒置きに画像が表示されません。 強制的に再描画させる方法などありましたら教えてください。 お願いします。
while (gtk_events_pending()) gtk_main_iteration(); を挟むとか。 g_timeout_addを使う方法もあるね。
60 :
login:Penguin :2008/05/30(金) 15:17:07 ID:ann5FY58
ありがとうございます。 while (gtk_events_pending()) gtk_main_iteration(); でうまく動きました。 助かりました。
61 :
login:Penguin :2008/06/01(日) 12:51:26 ID:Qfk/evfC
質問ばかりですみません。 スタートをクリックしたらマウスカーソルを10秒間消したいと思っています。 カーソルを透明にしてやればいいと思うのですが、 よくわかりません。 よい方法がありましたら教えてください。
#!/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()
ちょっと修正 #!/usr/bin/python import pygtk; pygtk.require("2.0") import gtk, gobject win = gtk.Window() win.set_default_size(200, 200) win.connect('destroy', gtk.main_quit) def create_invisible_cursor(): pixmap = gtk.gdk.Pixmap(None, 1, 1, 1) color = gtk.gdk.Color() return gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0) def on_clicked(button): win.window.set_cursor(create_invisible_cursor()) button.set_sensitive(False) def after(): win.window.set_cursor(None) button.set_sensitive(True) gobject.timeout_add(10 * 1000, after) button = gtk.Button('Start') button.connect('clicked', on_clicked) win.add(button) win.show_all() gtk.main()
64 :
login:Penguin :2008/06/01(日) 15:01:10 ID:Qfk/evfC
ありがとうございます。 c言語でコーディングしているのでcで書いていただければ。。。 すみませんcしかわからないもので。 GdkCursor cursor; gchar bits[32] = { 0}; GdkBitmap *bitmap; GdkColor color = {0, 0, 0, 0}; bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16); cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8); gdk_window_set_cursor(window, cursor); 現在はこれでとりあえずカーソルを消してみようとしたのですが、 assertion 'window != NULL' failedとでてしまって消えない状態です。
試してみたらそれでうまく動くようだが。 gdk_window_set_cursor() の呼び出しはちゃんとしてる?
66 :
login:Penguin :2008/06/01(日) 15:36:53 ID:Qfk/evfC
ちょっと修正です。 GtkWidget window; GdkCursor cursor; gchar bits[32] = { 0}; GdkBitmap *bitmap; GdkColor color = {0, 0, 0, 0}; bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16); cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8); gdk_window_set_cursor(window->window, cursor); これで実行すると、 gdk_window_set_cursor:assertion 'window != NULL' failed と出ているので呼び出しでエラーになっていると思います。
#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; }
gtk_widget_realize() 前の widget->window を触ろうとしてるのが原因かな?
古いバージョンGtkを使ってたりしない?昔そういうのでハマったおぼえがある
70 :
login:Penguin :2008/06/01(日) 16:10:28 ID:Qfk/evfC
67のようにしたらエラーはでませんけど、カーソルは透明になりません。 windowの上に、水平ボックスや垂直ボックスをパッキングしているから gdk_window_set_cursor(window->window, cursor); で消えないとかはありますか? gtk_widget_realizeについて調べてみます。 gtk-config --version をしたら1.2.10とでてきました。
71 :
login:Penguin :2008/06/01(日) 16:17:00 ID:Qfk/evfC
gtk_widget_realizeしても状況変わらずです。 ソースはこうなってます。 int main( int argc, char *argv[]) { GtkWidget *window; /* メインウインドウ */ GtkWidget *test_window; /* テストウインドウ */ GtkWidget *button_start; /* スタートボタン */ GtkWidget *button_quit; /* 終了ボタン */ GtkWidget *hbox; /* 垂直ボックス */ GtkWidget *vbox; /* 水平ボックス */ GtkWidget *separator; /* セパレーター */ GtkWidget *drawingarea; /* 描画領域 */ GdkPixbuf *pixbuf; gchar bits[32] = { 0}; GdkBitmap *bitmap; GdkColor color = {0, 0, 0, 0}; GdkCursor *cursor; /* 初期化 */ gtk_init( &argc, &argv); window = gtk_window_new( GTK_WINDOW_TOPLEVEL); drawingarea = gtk_drawing_area_new(); vbox = gtk_vbox_new( FALSE, 0); hbox = gtk_hbox_new( FALSE, 0); button_start = gtk_button_new_with_label( "Start"); button_quit = gtk_button_new_with_label( "Quit"); separator = gtk_hseparator_new();
72 :
login:Penguin :2008/06/01(日) 16:17:54 ID:Qfk/evfC
/* ウインドウを画面サイズに合わせる */ gtk_window_resize( GTK_WINDOW( window), gdk_screen_width(), gdk_screen_height()); /* delete_eventが発生したらdelete_eventを実行する */ g_signal_connect( G_OBJECT( window), "delete_event", G_CALLBACK( delete_event), NULL); /* 水平ボックスの中にスタートボタンと終了ボタンをパッキング */ gtk_box_pack_start( GTK_BOX(hbox), button_start, TRUE, FALSE, 5); gtk_widget_show( button_start); gtk_box_pack_start( GTK_BOX(hbox), button_quit, TRUE, FALSE, 5); gtk_widget_show( button_quit); /* 垂直ボックスの中にテストウインドウと水平ボックスをパッキング */ gtk_box_pack_start( GTK_BOX(vbox), drawingarea, TRUE, TRUE, 0); gtk_widget_show( drawingarea); gtk_box_pack_start( GTK_BOX(vbox), separator, FALSE, TRUE, 5); gtk_widget_show( separator); gtk_box_pack_start( GTK_BOX(vbox), hbox, FALSE, FALSE, 0); gtk_widget_show( hbox);
73 :
login:Penguin :2008/06/01(日) 16:20:38 ID:Qfk/evfC
/* メインウインドウに垂直ボックスをパッキング */ gtk_container_add( GTK_CONTAINER( window), vbox); gtk_widget_show_all( window); bitmap = gdk_bitmap_create_from_data( NULL, bits, 16, 16); cursor = gdk_cursor_new_from_pixmap( bitmap, bitmap, &cursor_color, &cursor_color, 8, 8); gdk_window_set_cursor( drawingarea->window, cursor); gtk_main(); return 0; }
2.12.9 だけど、それでちゃんと動くよ
75 :
login:Penguin :2008/06/01(日) 16:51:52 ID:Qfk/evfC
ありがとうございます。 バージョンをあげてからやってみます。
gtk+プログラミングについてお薦めの本とか出てないのでしょうか? 不勉強で付属のチュートリアルだといまひとつ良くわからなかったもので…。
78 :
76 :2008/06/02(月) 18:02:10 ID:2n4LDSUT
>>77 早速教えていただいてありがとうございます。
参考にして勉強して行きますね。
79 :
login:Penguin :2008/07/20(日) 20:11:46 ID:hZzIJHG7
てs
Panedでユーザ操作によるリサイズを禁止することってできますか?
>>77 gtkmmかGtk#辺りが無難なのかなぁ。
GNOME公式のアプリにもC#で書かれたモノが増えてきているようだし。
外国ではPythonで書かれたアプリも沢山あるみたいだけど、
国内だと情報が少なそうだしな。
どうせ英語は読むことになるからpythonでやるのが無難 GNOMEにはpythonアプリたくさんあるしね
Gtk#はないな。gtkmmでしょう。
Cでシコシコやろうとしてる/やってる俺はどうなんでしょ
とりあえずgtkmm関連の日本語のページを読みながらチマチマと勉強中。
JDのソースとか参考になるかなぁ。
> どうせ英語は読むことになるから
ですよねーorz日本語の情報少ないもんなぁ…
> Gtk#はないな
そうなのか?
Novellが関わってるのがアレだけど、C#は覚えやすいと思うんだが。
>>85 > Cでシコシコ
漢
自分で参照カウンタを管理するのはめんどい
いっそのことRubyでいこうよ。
linuxなら c, gtkmm + python で 鉄板だろ 移植性とかいいだすのが間違いのもと。 まずはc#, javaの排除から。 つーか、そういうのってmsやsunの儲けにしかならんよね、実際。
今、ruby-gtk2を使って簡単な画像ビューワを作っています。 デスクトップにフィットさせて表示(大きい場合は縮小表示)させたいのですが、 パネルとかウインドウマネージャの装飾を考慮して、画像を表示できる最大の サイズを知りたい場合、どうしたら良さそうですか? 探してはいるものの、なかなか良さそうな手が見つからないです。
gtk2hsにトライしたが、一部関数が無くてダメでした。まあこれからか。 erlgtk使いの人とかどう?
>>90 ウィンドウを maximize した時にでるシグナルの中でウィンドウ
サイズを取得して、画像のサイズを拡大縮小とか。
これだと、ウィンドウが出てから画像が出るまで、間が空くか?
93 :
90 :2008/10/20(月) 00:25:14 ID:s5JT3EOQ
>>92 レスありがとうございます。
やっぱり、そういうちょっと強引な方法しかないんですかね。
せっかく教えてもらったんですが、ちらつきそうなので、できれば避けたいです。
今は、スクリーンサイズを取ってきて適当なサイズで妥協しています。
何かあっても良さそうなのになぁ。。。
>>93 "expose-event"シグナルかな、rubyであるのかは分からないけど
>>90 昔SunのJDKのソースを読んでいたことがあるんだが、当時のJDKの実装では、
1) 使われているwindow managerを特定
2) 有名(あるいは標準的と言うべき)なwindow managerであれば、
それぞれのwm固有の枠部分の装飾手段(Windowの重なり具合など)
の知識を基に、今有るウィンドウの親を手繰ってwm由来部分を調査し
wm由来部分のサイズを決定
3) 知らないwmは非サポートってことで適当に……
なんてことをしていた
ここ数年で提案されてない限り、良い方法はないと思われ
実際にmaximizeするしか知る方法はないだろう? 強引というならそれをやる前に知ろうとする方が強引のような。 それにGTK+はデフォでdouble-bufferedだから何も考えなくてもちらつきしない。
>>96 > 実際にmaximizeするしか知る方法はないだろう?
> 強引というならそれをやる前に知ろうとする方が強引のような。
同意。それ以外のやり方してるソフトなんてないのでは?
98 :
90 :2008/10/20(月) 21:27:41 ID:s5JT3EOQ
レスありがとうございます。
>>94 ごめんなさい、"expose-event"シグナルはrubyでもあるのですが、94さんの意図が
よく理解できませんでした。
>>95 詳しい情報ありがとうございます。
Sunの人でさえ、そういう実装をされているくらいだから、簡単な方法は無さそうですね。
>>96 ,97
そんなことを簡単に知ろうという方が間違いですかね。
ちなみに、ちらつくと書いたのは、実際maximizeしてからサイズを取ってくるとすると
画面に表示することは避けられず、一瞬maximizeしたウインドウが見えてしまうという
意味で書きました。
まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
誤解しているかも知れませんが。
99 :
94 :2008/10/20(月) 23:02:02 ID:upSqhUNX
>>98 すみません、
>>90 さんの要求を正しく理解していませんでした。
最大化できるサイズを求めるというのではなくて、あくまでアプリ側で必要な
サイズ(GtkRequisition)と、実際に獲得できたサイズ(GtkAllocation)
で実装するのはいかかでしょうか?
>>98 > まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
> 誤解しているかも知れませんが。
どう考えてもこれがガンだろ。呆れた。
101 :
90 :2008/10/21(火) 23:21:31 ID:rjo5j4+k
>>99 色々、考えて下さり、ありがとうございます。
>>100 まあ、そう言わんで下さい。
皆さんに教えて頂いたことをヒントに、時間が取れるときに
もっと勉強しようと思います。
レスをしてくれた方々、ありがとうございました。
複数のファイルをユーザーに選択させ、そのファイルのパスをリストなり 配列なりで得たいと考えています。 調べてみたところ GtkFileChooserDialog は単一ファイル|ディレクトリ にしか対応していないようなのですが、上記のような機能は自前で実装す るしかないのでしょうか。
>>102 gtk_file_chooser_set_select_multiple()
gtk_file_chooser_get_filenames()
の組み合わせじゃ駄目なのかい?
>>103 ありがとうございます。完璧に私の調査不足でした。
教えていただいた方法でいけそうです。
glade3の最新版にしたらいつの間にかGtkBuilder形式でも出力できるようになってたよ。 さすがにウィンドウ別に分けて出力はしてくれないけど。
PyGTKでランチャー作ってます ホットキーから呼び出すにはどうすれば やはりgconf弄らないと無理なのでしょうか。
どのウィンドウがフォーカスされている状態でもキー操作で呼び出したいってこと? そりゃXならウィンドウマネージャの仕事だ。
>>107 そうです
どんな操作してるときもホットキーから呼び出したいので
PyGTK以外の言語は全く解らんのですがXLibあたりですかね
これさえ備えられればほぼ完成なんです
ありがとうございました。もう少し調べてみます
>>108 それ俺も知りたい。分かったら教えてくれ。
>>108 ウィンドウマネージャにショートカットで任意のプログラムを呼び出すような
親切機能がついていればできる、なければ基本的にできない。
こんなんでどうよ #!/usr/bin/python import gtk, gobject import Xlib, Xlib.display, Xlib.X, Xlib.XK win = gtk.Window() win.connect('destroy', gtk.main_quit) win.show_all() display = Xlib.display.Display() root = display.screen().root root.grab_key( display.keysym_to_keycode(Xlib.XK.XK_a), # keycode Xlib.X.ShiftMask | Xlib.X.ControlMask, # modifier True, Xlib.X.GrabModeAsync, Xlib.X.GrabModeAsync) display.sync() def check(*args): ev = display.next_event() if ev.type == Xlib.X.KeyPress: print (ev.detail, ev.state) # (keycode, modifier) win.present() return True gobject.io_add_watch(display, gobject.IO_IN, check) gtk.main()
>112 xbindkeysのソースが参考になるかもね。 でもgdkとgtkだけで済ませたい気もする。
>>113 これCですか?現時点では意味不明でした。
やはり最低でも2言語くらい習得しないと細かい所が弄れませんね。
>>114 それも試してみましたが何故が無反応でした。
さらに一週間くらい調べてみます。
glade3といえば日本語メッセージの翻訳が迷訳てんこもりで参った記憶しかないぞ。 ありゃGTK+プログラミングろくに理解してない奴が訳してるんだろうなあ。
出版界を見ると、GTK+よりもQtの方が元気があるように見えるんだけど、 ユーザ数ではどうなんだろう。日本でも最近出てる本はQtのだよね。
出版ではQtだが、実際にはgtkのほうが人気がある。 ユーザ数でもおそらくgtkのほうが多い。 なぜQtの本のうほうが多いのかは謎。 gtkの本ってなんであんなに少ないんだろうか。
ネット上のドキュメントが充実してるからとか? 洋書も最近のはQtの が多いよね。 日本GNOMEユーザー会とKDE ホームページ(日本KDEユーザ会)の サイトを比べてみると、一見KDEの方が勢いがあるように見えるけど、 リンクのメンテがボロボロだな。
Ubuntu人気があるからgnomeのほうがユーザ多そうだけどな、実際どうなんだろな。 あと他言語のバインディングではgtkのほうが優勢な気がするんだがどうなんだろ。 QtHaskellとか使ってる人いる?俺はgtk2hs使ったけど使い物にならなかったよwww必要関数無くてwwww。
Ubuntu, Fedora, Debian, Vine(笑)とか標準ではたいがいgnomeだからね。 やっぱシェア(数)はやっぱgnomeが多いんじゃないの? KDEはOpenSUSE, Mandriva(turbo)とか。 まぁ前出のgnomeトリはたいがいKDEの派生つーかブランチもあるし 入れ替えたって(共存させたって)いいんだけどね。
125 :
119 :2008/11/03(月) 23:02:36 ID:zVTwcnmi
ユーザーはともかく、クリエータはGTK(GNOME)の方が多いだろう GTKがLGPLなのに対して、QtはGPLか最近のtool kit としては高額の 有償ライセンスかのいずれか 利用できる人間は、どうしても限られてくる
127 :
login:Penguin :2008/12/17(水) 15:27:32 ID:KRTiKwTi
欲しいソフトがないから自分で作ろうと思う。 だが、どの言語もソースは読める程度、簡単な改造が出来る程度のレベルです。 だが、一からあのソフトを作りたい・・・。 そんな俺はどのようなGTK開発環境が良いとおもいますか? 今考えているのは、 Pygtk + grade の組み合わせです。 これを薦めるハッカーが多いのと、Pythonという言語がしっくりくるからです。 ほか、初心者におすすめのGTK開発環境がありましたら教えて下さい。
まあそのへんより簡単なのは無さそうだよね。自分はRubyが好きなので Rubyで勉強してるけど。
129 :
vte :2008/12/17(水) 19:59:56 ID:4+kAQRIa
vte-0.17.4 を ./configure && make && make install してみたのだけど, 画面端で漢字入力を始めると, 折り返しも延長もしてくれず, 入力文字が見えなくなる. | ▽かんじに| のように. でも次のようになってほしいのだけど, | ▽かんじに| |ぅりょく | とか. gtk-demo の text-widget の multiple views などはうまくいってます. .gtkrc-2.0 とかに何か設定が必要でしょうか?
ところでpygtkって遅くね? Core2Duoのマシンでボタンクリックしてからレスポンスが10秒後とかザラなんだが。 gtkmmとか生のgtkのほうがいいんじゃね?
gtkmmは地獄。
レスポンスが10秒後ってなんか間違えてるんじゃ
135 :
134 :2008/12/23(火) 21:34:16 ID:ae4qT9Yd
137 :
134 :2008/12/24(水) 09:50:41 ID:hiOOXDc5
>>136 ありがとうございます。
参考になりました。
C++/GTKで書いたプログラムを wxPythonで書き直したら wxPythonで作った方がサクサク速く動いた orz
windows上か?
PHP-GTKってどうよ?
そんなのあるのか。今度試してみよう。
時代を読み違えてるな。 ベクトルベースとか3DデスクトップとかVistaとともに沈んだよ。 PC肥大化狂騒曲は終わりだ。Qt4も総スカンだし
いやでも実際有名どころで使われてるわけだし それに素のGTKのみで描画するより処理速度は速くなるし, プラットフォーム間の互換性も高まると思う 別に肥大化してるわけじゃないしVistaや3Dデスクトップとはちょっと違うだろう gtkがcairoをサポートしてまだ日も浅いしむしろ今からが勝負
ふつーに使ってる。フォントの取り扱いがプラットフォーム中立にできればなおいいのだが。
Cairo のフォント描画は Windows 上だとジャギが目立つ。Linux 上では問題無し。 何か設定がいるのかしら。
普通ベクトル・グラフィクスにジャギーは発生しない なにか間違ってることは間違いない
>>144 速くなるって、なんかベンチの結果でもあんの?
skiaを用いているgoogle chromeのcanvasが爆速という話なら聞いたことがあるが
>>146 普通にcairoをコンパイルすると、Windowsではcairo-win32-font.cが使われる
これは普通にGDIを用いているので、普通のWindowsアプリのフォントの
レンダリングと全く同じ結果になる
一方LinuxではFreeTypeが使われる
a
>>148 firefox2とfirefox3の速度比較は
確証を裏づけるものにはならないか?
一般的にラスター描画よりベクトル描画の方がデータ数が少なく、描画速度は速いと言われているし
ところでskiaて何?
mexo hanaxo
>>153 これはハードウェア実装のOpenGLによるベクタ描画と
ソフトウェア実装のcairoによるベクタ描画の実験結果だな...
ハードウェア実装だとプラットフォームやハードウェア環境の影響を受けるが
ソフトウェア実装より格段に速度を上げられる
だからこそcairoにもOpenGLによるハードウェアアクセラレーションのサポートがあるわけだが...
でもビデオカードやらのGPU性能依存というのは
それこそ3DデスクトップやらVistaやらのPC肥大化狂騒曲じゃないのか?
ハードウェア実装を否定してるわけじゃないが
これはアリなの?
そこのところどうなんよ?
>>154 んー
それを言うなら、GDIだってハードウェアアクセラレートされていて、
GDIがソフトウェアでエミュレートされるようになったWindows Vistaでは
実際描画が遅いのなんのと騒ぎになっていたわけだろ
cairoは、下のレイヤの上に乗っかって、アンチエイリアス描画を行うから、
一般的には下のプリミティブをそのまま用いるのではなく、
pixmapの上にソフトウェアレンダリングを行う形になる
だから結果は綺麗だが、それが高速化につながるという意見はさっぱりわからんね
皮をかぶせれば、ポータビリティは高まるかもしれんが、速くなるわけがないよ
個人的にちょっと試した限りでは、少なくともWindowsで普通にコンパイルした
cairoは、遅いといわれるGDI+よりもまだ遅いぐらいだ
同種の競合ソフトのaggと比べても、やはり遅いな
cairoの下のレイヤって何? cairoはGTK+/GDKやXlibの上にはない そもそもpixmapのようなラスタデータ上にベクタデータを ラスタライズしても綺麗な結果にはならない Vistaが重い一番の理由はVistaのコアが4Gとかのせいじゃなかったか?
>>156 > cairoの下のレイヤって何?
> cairoはGTK+/GDKやXlibの上にはない
????
cairoは何らかのバックエンド(サーフェス)の上で描画を行うわけだが
一体何を言ってるんだ
> そもそもpixmapのようなラスタデータ上にベクタデータを
> ラスタライズしても綺麗な結果にはならない
ビットマップディスプレイに、ラスタデータ以外をどうやって描画するんだ?
ベクタグラフィックスだろうが3Dだろうが、ビットマップディスプレイに
描画するときは、*必ず*2Dラスタデータに落とす(=レンダリング)
しなければ、描画のしようがないのだが、そんなことも知らないのか?
レンダリングをソフトウェアで行うか、ハードウェアで行うかは
実装の問題だがな
他の領域に落としたらそれが遅くなる原因だしな。 絵の処理なら、cpuから見えるメモリ領域のビットマップに転送が遅くなる原因のno1。 cairoは、その辺がすべてバックエンド任せでさらにメモリ上でいじるので、 普通に使うと遅いソフト(cpu)処理の部類に分類される。 てか、cairoの中身でも描画なんかは一切触れずに、cairo_surface_tで共通化とでしか使ってないと思うんだけどどう?
待てばcairoの日和あり
で?
161 :
login:Penguin :2009/01/08(木) 14:49:56 ID:25IYEPJi
初めて拝見するが、 ここの良スレ度にびっくりした。
162 :
login: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 無しで「右」キーのみ で作用するようにしたいんです。
ところでさ、なんでGtkTreeViewColumnに gtk_tree_view_column_get_widthはあるのにgtk_tree_view_column_set_widthはないの? なんでカラムの幅を非常にまわりくどい方法でセットする事しかできないんだろう。
バカ除けのため
>>163 他のコラムに対する影響を考えないといけないからでないの? 推測だけど
167 :
login:Penguin :2009/01/19(月) 07:00:18 ID:Zkvelgln
どうすればtoolbarを縦に位置させることができますか?
ディスプレーをガタンとですね
172 :
167 :2009/01/21(水) 13:15:59 ID:cRTwudVb
174 :
login:Penguin :2009/01/21(水) 22:48:05 ID:zay9Vio9
>>167 まず言語は何でプログラミングしてるの?
個人的には盛り上がって欲しいスレではあるのだけれど。
CでガリガリGTKアプリ書いてる人あんまりいないのかな…
175 :
167 :2009/01/22(木) 01:25:28 ID:qMqmINP5
>>175 set_orientationでvertical指定
詳しくはググれ
177 :
login:Penguin :2009/01/23(金) 07:41:44 ID:Azeyn9TC
Objective-C使ってます
178 :
167 :2009/01/23(金) 13:07:07 ID:AEZO7GNu
toolbar を縦(vertical)に配置することには成功したのですが、 menubar を縦(vertical)に配置する方法が見つかりません。 // 例えば、menubar に対しては gtk_toolbar_set_orientation と同様の関数が存在しません。 どうすればできるでしょうか?
179 :
login:Penguin :2009/01/24(土) 17:41:53 ID:j3OrWlaN
linuxデスクトップユーザーの特徴 @インストールしただけで選民思想 Aやっていることはwindowsと同じ。しかもめんどくさくなっただけ。 Bコマンド打ち込んでプロだと勘違い C黙ってwindowsでも使ってろと間口を狭める D素人がだのなんだのとwindowユーザーを馬鹿にする Eカーネルいじればいいだろと無茶を要求 Flinux開発者とのずれを認識できていない Gwineを使うくせにlinuxを再現しようとする動きがあるとたたく 冫─' ~  ̄´^-、 / 丶 / ノ、 / /ヽ丿彡彡彡彡彡ヽヽ | 丿 ミ | 彡 ____ ____ ミ/ ゝ_//| |⌒| |ヽゞ |tゝ \__/_ \__/ | | __________ ヽノ /\_/\ |ノ / ゝ /ヽ───‐ヽ / / linuxはめんどくさくて難しい分だけ、 /|ヽ ヽ──' / < 自称プロが悦に浸るためのツールとして最高なんじゃないだろうかwww / | \  ̄ / \ / ヽ ‐-  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
180 :
167 :2009/02/01(日) 07:28:50 ID:lE4ur93H
お前等、なにも知らないんですね。
181 :
login:Penguin :2009/02/02(月) 10:47:56 ID:IIH5qxfd
もともと閲覧者が少ないスレで 自分の欲しいタイミングで回答を得ようとしてるのが間違い 半年位待ってみろ
182 :
login:Penguin :2009/02/02(月) 11:13:18 ID:6BkR0lwx
>>181 では、LinuxでGUIを作るにはどのライブラリを使うのでしょう?
184 :
167 :2009/02/02(月) 13:03:00 ID:9NCOwk9m
>>183 変な事言ってるように仕向けたいんだろうけど、
lE4ur93Hは正当な事言ってんじゃん。
ただの荒らしコピペに反応すんなよ NG登録されて回答もらえなくても知らんぜ
186 :
login:Penguin :2009/02/10(火) 20:32:40 ID:8DV6Um/n
ファイル選択ダイアログを、ターミナルから閉じたくて、 下の処理を入れたのですが、ダイアログを閉じた後、応答が無くなります。 (GUIでキャンセルボタンや×をクリックすると正常に閉じれる) どうすれば、ターミナルから正しく閉じれるかを教えてください。 GtkWidget *filew = NULL; void FileSelection::destroyFileSelection() { status = false; gtk_widget_destroy(filew); }
Windowsでは、自分以外のプロセスが管理しているウィンドウのハンドル(動作中のOS上で ユニークな識別番号)を得ることができれば、そのウィンドウのサイズやデスクトップ上での 位置などを好きにいじくったりできるのですが、LinuxのGTK+(またはGNOMEもしくはX Window System)にそのようなAPIのようなものはありますか?
188 :
187 :2009/03/29(日) 11:38:55 ID:JOkFFCq+
すみません、ageさせてください。 なにがやりたいかと言うと、特定の文字列をウィンドウタイトルに含むトップレベルの ウィンドウに対して、デスクトップ上での表示位置やサイズを変更したりといったことです。
189 :
187 :2009/03/29(日) 20:36:19 ID:JOkFFCq+
自己レス libwnckてのが関係ありそうだが、Rubyから使えるんだろうか。Pythonにはそのための モジュールが既にあるみたいなんだけど。今Ubuntu起動できないからよくわからん。
>>187 wmctrl コマンドのソースでもみればいいんじゃね?
191 :
187 :2009/03/30(月) 10:56:06 ID:+ewzli1b
レスありがとうございます。こんなコマンドがあったんですね。自分の目的にはこれを 利用するだけで十分そうですが、ソース読むのも勉強になって面白そうですね。 結果的にスレ違いになってしまってすみません。
192 :
login:Penguin :2009/04/23(木) 11:32:24 ID:rK6Swnpx
だれか clispからgtkを使う方法を教えてください
193 :
login:Penguin :2009/07/10(金) 07:43:15 ID:jUacI/UD
VMwareがGtk産だったとは
194 :
login:Penguin :2009/07/17(金) 23:36:58 ID:hHQTz6KG
本気で聞く おまえらはどうやってGTK+勉強なさいましたか?
難しそうですね 断念しました ありがとうございませんでした
197 :
login:Penguin :2009/07/18(土) 18:31:08 ID:NxC2oWbI
何をどう見たら難しそうなんだよ? ゆとりか? 英語にびびるな! サンプルソースなんてコピればコンパイルできる WindowsでもLinuxでもCode::Blocks使えばそれほど コンパイルできる開発環境の準備には手間取らない
ママが一から十まで教えてくれなきゃイヤなんじゃね
199 :
login:Penguin :2009/07/18(土) 20:00:15 ID:ghQ1gSty
pygtkがいちばんやさしくてにょろにょろ
>>197 そうですね
サンプルソースをコピーして勉強したことにしようと思います
>>198 そうですね
パパじゃいやです
>>199 そうですね
数十年ぶりにしゃぶりたいです
>>195 俺、本気になります!真面目に勉強します!
ありがとうございました!!
携帯とか組みこみでGTK+を使っているものって何かある? 海外では結構あるみたいだけど、日本だと聞かないよな。
うん
GTKはもう少しで消滅する googleの新しいソリューションに置換される
Chrome OS の事か? 確かにウィンドウシステムは時前のものを用意するらしいけど、 どうなんだろうね。そもそもソースが公開されるかどうかも怪しい。 それに、GTK+の培ってきた年月を一気に越えられるとも思えないし。
グーグルは基本Qtじゃないの。 でも今更ブラウザの下の層なんか関係ないはず。 HTML5 でアクティブデスクトップっていう懐かしいお話をもう一度やるんでしょ
まぁ、googleはWEBアプリが基本だから、そうなるのかね。 ただ、この事前の大袈裟なプロパガンダはMSに似てるなw
GTKスレはあるのにQTスレがないのはなんでだろう〜
211 :
login:Penguin :2009/07/25(土) 11:39:56 ID:IOPwPp1+
初歩的な質問です。 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
Xを使わずにフレームバッファを使うGTK+とやらはインストールしてあんの?
214 :
212 :2009/08/23(日) 02:02:51 ID:cXbPjTOU
debian上からaptitudeでlibgtk2.0とlibgtk2.0-dev関連のライブラリをインストールしてあります。
Xを使わないと動かんよ。 Gtk+はXLibの面倒臭さを軽減するためのライブラリに過ぎんのだから。 Windowsに移植する場合にもXLib相当のが要る
>>214 それはX用のパッケージ。
フレームバッファ用のGTKはlibgtk-directfb-2.0-*だぞ。
>>215 知ったか乙
217 :
212 :2009/08/23(日) 10:44:26 ID:cXbPjTOU
libgrade+gtkmmをいじって遊んでいるのだけど メインウィンドウからダイアログのようなウィンドウを開く サンプルは何処かに有りませんでしょうか
>>218 gtkmm-demo を起動してみては?
結構いろんなサンプルがあるな > gtk-demo pygtk-demo gtkmm-demo
>>219 libgladeを使っていない様です。
>>221 有難うございます。小汚い書き方で何とか表示だけはするようになりました(いろいろ問題が有るけど)
綺麗に書いてあるサンプルなど見ればもう少しましになるかと思ってたのです。
libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
今は何を使う方向なんでしょうか?
>>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で非推奨になっているものは、消えゆく運命。
>>223 Debianのlennyを使っているのでAnjuta 2.4.2、Glade 3.4.5です・・・
GtkBuilderのサンプル探しの旅に出たいと思います。有り難うございます
glade も GtkBUilder もほとんど同じだから、リファレンスを見ながらで 書けると思うけど。
GtkBUilderを使ったGtk::Drawingariaのサンプルを作ろうとしたんだけど 途端に分からず・・・ イベントとかどうやってつなげたらいいのだろう イベント処理で書かないと無理だよね?
とりあえずこんな感じか。 (ちなみに 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); }
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; };
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(); }
ただの Gtk::Window で悪いけど Gtk::Drawingaria でも大差ないはず。 app_window.glade は GtkBuilder 形式の xml ね。 大体こんな感じが典型的な処理だと思うよ。
>>226 > イベントとかどうやってつなげたらいいのだろう
> イベント処理で書かないと無理だよね?
drawareaをeventboxの上に乗せないとダメじゃなかったっけ?
# と、テストもせずにカキコ
有難う、私が書いていたのと大分違うみたい 少しずつ見てみるよ
ちなみに AppWindow みたいに Gtk::Widget を継承している場合は、単に
class AppWindow : public Gtk::Window
{
public:
virtual void on_show()
{
cout << "表示された" << endl;
}
};
みたく仮想関数をオーバーライドするだけでいいんだけどね。
ただ、これもトップレベルのウィンドウのイベントしか反応できないから、
>>229 のコンストラクタみたく cast_static なんかでボタンとか取得して、
自分のメソッドを connect していくのが C++ っぽい書き方な気がする。
>>227 コンパイルしてみたけどエラーで落ちてしまったよ
m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
これってどんな意味かな?
結局こんな感じに書いてつながったけど、何かモヤモヤするよ 複雑になってくると小汚くなりそうだなー 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 ) );
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(); };
>>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 がないと駄目だよ。
それで落ちてるんじゃない?
>>235 別にそんな小汚くはないと思うけど。大体そんなもんだよ。
>>236 MyDialog は Gtk::DrawingArea を継承してもいいかも。
それと on_* は protected の方がいいよ。
>>234 適当なGtk::WindowのGUIを作って読み込ませたんだけど
それがうまく行ってなかったのかもしれない
色々有難う
GtkBuilderを使わない方も少しいじってみるよ
Gtk::SpinButtonを浮動小数点表示にする事は出きますでようか?
cairommでバックバッファを使った描画はどうすれば良いのでしょうか? save(),restore()は少し違うような気がして・・・
GTK+onDirectFBをインストールしようと思ってDirectFBのサイトに行こうとしたら なぜか繋がらないんだけど誰か教えr・・・教えてください。
244 :
login:Penguin :2009/09/15(火) 17:56:26 ID:1BtVuQj7
sageちまった
245 :
login:Penguin :2009/09/15(火) 17:59:06 ID:1BtVuQj7
GtkGLextmm を使っている人はいますか? 実装具合とか、こっちのライブラリの方が良いよとかありましたら教えて頂きたいのです。 超初心者なのでMesaとかとの違いも分かりませんがGtk繋がりと言うことで宜しくお願いします。
独自処理のバッテリー残量表示のために Ruby/Gtk2でGtk::StatusIconを使ってみたんですが、 tooltipは付けられても、どうもlabelを付けることができなさそうです。 通知領域にテキストないしはアイコン+テキストを表示したいのですが、 どんなクラスを使えばいいんでしょうか? リファレンスを見た限りではちょっと見当が付きませんでした。 Gdk::Pixbufにテキストを動的に描画するのかな。
>>243-245 DirectFBのソースをDLしようとオフィシャルサイトを開こうとしたけど、まだサーバが落ちたままだね・・・
9/14頃から落ちてるっぽいからメンテナンスにしては長過ぎだよね。
もしかしてDirectFB終了フラグON?
>>249 今はつながってる。digしたら212.227.87.76だった。
251 :
login:Penguin :2009/09/28(月) 02:12:56 ID:5e1BLaTK
GTK+2.18記念あげ ウィンドウの管理すらGDKで行なうようになり、ちらつきを減少させたり ウィンドウの変形やアニメーションを行なえるようになったり、別の (Clutterのような)描画ライブラリの中に簡単に埋め込めるように なったりしたようだ。 他にも、各プラットフォーム毎に実装していたウィンドウを管理するコード を共通にする事ができるようだ。 WindowsやMacOSXでの動作が改善されたらいいなと。
gtkmmで複数のウィンドウを開くプログラムは作れますか? イメージ的にはGIMPの様なコントロールが有って描画画面が有る感じ gtk+を使えば出来るのかな?
253 :
252 :2009/10/05(月) 12:16:45 ID:yVAGOb64
やり方が分かったの報告(するまでもないのかな・・・) Gtk::Windowを継承したクラスをインシタンス化して hogehoge.show() で表示されました。(バカみたいな話でお恥ずかしい)
インシタンス><
255 :
login:Penguin :2009/10/11(日) 18:03:35 ID:Sidlsc4E
ググってみたけど使えるっぽいよ
>>255 Leopard だけど、MacPortsからインスコできたよ。
Ruby/GtkとPyGtk用にと。
Gtk+2 で初の和書じゃないの。出るだけで価値がある
まぁお布施のつもりで買っておくか
Gtk::SpinButtonの値が変更された時に発生するイベントを一時的に停止することは出来ますか? 複数のGtk::SpinButtonが変更されるのが分かっている場合に一時的に停止して 手動でアップデートしたいのです。
>>258 gtk2hsも扱って欲かったwww
買うけどなwwww
QtよりGTK+がイイみたいだぬ、GTK+に決めるぬ
Qtもいいぬ。触ってみてぬ(´・ω・`)
>>258 そもそも洋書でもgtkmmはないだろ。そんな中で日本語の本なんて奇跡が
起こらない限り無理だろ。
267 :
login: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に入れること
>>258 「入門GTK+」
今日、買ってきたよ。
最近は、Web上のホームページのプログラミング解説の方が分かり
易いとうことが多くなってきているようだけど、
「入門GTK+」を
サックっと、50ページくらい読んでみたところ
この本は、意外に読みやすいし、わかり易い。
他のプログラミングの習得に挫折した人でも何とかいけそうな感じかな。
QtだとQt CreatorとゆうIDEが使いやすいけど、 GTK+使う時はどんなIDE使うと便利ですか。
>>269 「入門GTK+」では、Anjuta(アニュータ)が紹介され解説されているね。
そうそう、時間があったので qt4の解説書も立ち読みしてきたんだけど、今日買った「入門GTK+」 の方がわかり易かった。 誰か、「猿でもわかるqt4」って本、書いてくれないかな〜
GTK+は使ったときないけど、QtもQt Creatorもすごく使いやすいぬ(´・ω・`) GTK+簡単なら使ってみようかしら。
>>268 読みやすいのか、ボーナス出たら買おうかな。
>>272 C++使えるならQtだけでいいんでない?
おれはCしか知らないからGTK…
そいつム板のwxスレを荒らしてるキチガイだから放置推奨
Gtk+の場合はGladeってのがある。もちろん簡単。
gladeはもうobsoleteだけどね。今はGtkBuilderを使う
glade自体はまだまだ現役だよ。 ただlibgladeはもうobsoloteだけどね。
あと半年たらずでGTK+3が出るこの時期に出さんでもという気もするが。
>>279 HPに公開していたGTK+の第2版までのドキュメントを著書にしたいという願いと、
出版社側での「最近GTK+の本が出ていないので出したい」と言う思わくが一致して
GTK+-2の解説であっても出したんでないの。
GTK+3ってそんなに変わるの?
3Dデスクトップをデフォルトにする方向性はやめてほしい。 Vista も KDE4 も総スカンだろ? CPUのクロックが頭打ちなんだから、プログラマは節制しないと。
CPUのクロックが頭打ちだからこその3D描画だろ GPUにやらせたほうが描画は速い ※適切な3Dドライバがある場合に限る
オイラは、普段非力なマシンばかり扱っているから3Dをすると重くてかなわん! GTK+3が出ても当分は、GTK+2を使うよ。 「入門GTK+」を参考にすれば、jpgやgifのイメージビュ-ワが簡単に作れるし 動作も軽いからね。
描画は速いかもしれないがメモリ食うんだ
GTK+3は使用メモリ量が減って重くなるの?
288 :
285 :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 だった。
Windows だと何十メガとメモリ食うよね。 まあしょうがないんだろうけど。
GTK+3はスルーしてGTK+4まで待つお(´・ω・`)
Gtk+3は現状で限りなく3に近づいているから、そんなに変わらない。
The psychology literature certainly has a lot to say about the topic, but economists have a rather simplistic view of the issue. ,
>実のところ,私はKDE-1.0を見て(日本語は通らなかったものの)デスクトップ分野での UNIXの未来を確信し, >GNOME-1.0を見て目の前が真っ暗になった人なのですが(笑) >当時はQtが改変不可だったために,GTK/GNOMEを選択せざるを得なかった. とあるサイトの人のことばなんですが、詳しいことがさっぱりなので、どういう文脈なのかわかりません 誰か解説していただけたら幸いです。もしこれが荒れるような内容でしたらスルーを…
趣旨は脚注でない本文のほうにあると思うが、 GObjectも定着して成長したし、いまは中の人の評価も少しは違うかも。 まぁGtk+はダサい技術だと思う。でもダサいほうが品質高かったりするわけだが
クラス構造体の中に変数詰めてるとか(VTableとしても使えたなら…)、 G_SIGNAL_ACTIONフラグはただの目印にしかしてない所や、 せっかくGObjectというランタイムタイプシステムこさえてるのに 一部C言語バインディングからしか使えない機能とかあるっぽいところとかGTK+はだせぇなあと思う。 でもGObjectは面白かった。QtのmocやSiGnal/SLOTはいまいちそそられない。
今はValaが熱いよ。GObjectが好きな人なら尚更ハマること請け合い。
>>293 まぁ見ての通りだと思うけど、KDE1.0は衝撃的だったな。KDEが出るまでは
Linux(BSD)は一部のマニアのおもちゃでしかなかったのが一般にも普及しそう
な期待があった。
結局サーバー分野はある程度普及したけど、デスクトップ分野は今も昔も
変わってないけどね。
で、Gnome1.0あんまり記憶がないんだけど見た目はMotifに似ていてダサくて
動作が不安定だった記憶がある。
シグナルとかが補完されるエディタってないかな?
Gnome 1というとSolarisのイメージがあるなあ 大学の標準装備だった。俺は速攻twmにしたが。
300 :
login:Penguin :2009/10/29(木) 23:20:42 ID:6yKiv2hH
これからGTK+を学ぼうと思っています。 主にLinuxで開発するつもりで、AnjutaというIDEを使ってみようと思いますが、 Windowsマシンでたまにコーディングしたいときにはどうしたらいいんでしょ? Windows版ってありますか? Linux板で聞くのは変ですが…。
>>300 ム板にもスレがあることに気づいて
そこの過去情報を読んだら解決しました。
お邪魔しました。
302 :
login: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++というのも気になりますが、マイナーだし、日本語が使えない問題もあるようです。 これらは自分で集めた情報なので間違ってるかもしれません。 他にメリットやデメリットがあればどうぞ教えてください。 よろしくお願いします!
C++ならQt
>>303 やっぱりGTK+はC++に向いてないということですね。
情報ありがとうございました。
他にも情報があれば皆さんよろしくお願いします。
つGLUT
>>305 GLUTを調べて見ましたが、OpenGLのやつなんですね。
3Dにはあまり興味が無いですが、今後必要になったとき使ってみます。
情報ありがとうございました。
>>306 GTK+はC++との親和性が少し低いけど、gtkmmはC++用で問題ないということですね。
試してみます。
ありがとうございました!
rubyでgtkプログラムをしたいんですけど、何かいい開発環境はないですか? gladeとかでみためは作って変換できるのですが、中で実行するシグナル(っていうんですかね)がどういう感じで使えるかというのがわからないので 調べ調べになってしまいます。通常使ってるのはemacsとnetbeansです。これに似た、もしくはその上で動かせるものはありませんか? 補完とかできたらうれしいのですが。
逆に「gladeとかでみためは作って変換できる」の部分を 詳しく教えてほしい。
gtk-builder-convertのことかな?
ruby-glade-create-template とかあったよな.
クラスライブラリのリファレンス(英語)なら公式サイトでrbbrっていうサンプルアプリとして 置いてあるけど、そういうことじゃないのかな?
313 :
308 :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にパッケージがあったのでそれを入れてみましたが。リファレンスを引けるようになりました!
リファレンスが引けると言うことは補完もできるのでは?と今悩んでいる状態です。
314 :
309 :2009/11/06(金) 12:34:31 ID:pFNFtZEf
>>310 >>311 >>313 サンクスです。ググったら
Ruby/Gtk2のチュートリアルに書いてあるね
規制でタイミング逸して返事書かなくてすまん
315 :
308 :2009/11/06(金) 17:32:52 ID:1VLamOE6
>>309 さんはどんな感じでコードかいてますか?
リファレンス見ながらかいている感じですか?
>>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!を「こんにちは 世界!」
にして実行したら文字化けしたので、カッとしてアンインストールして
しまった。
以上、ご参考まで。
Lazarus とか。
gtkmmを薦めてるのがいるが真に受けんように C++でまともに動いたら、scim-bridgeみたいなモノを作る羽目にはならん
319 :
login:Penguin :2009/11/07(土) 11:52:06 ID:CPjNRklA
面白いのはわかるが、今更そんなんやったって・・・ 激しくつまらんけど、これからはAIRですよ
いや、これからはJavaですよ 作ってて面白いしね
321 :
309 :2009/11/07(土) 15:04:13 ID:pqmmO2Ng
>>315 そうだね。
オンラインリファレンスを地味に検索しながら
emacsのruby-modeで書いてるよ。
methodsとかのメソッドで確認したりするぐらい。
emacsで構文解析してメンバ関数だのメソッドを補完する環境って無いんじゃないかな。
無作為に辞書から補完するのはあるかもしれんけど。
netbeansはよく知らない。
Ubuntuだと「追加と削除」からリRuby Browserというリファレンスビュワーが落とせるよね。
これはRuby/Gtk2のクラスも見られたと思う。
型がなんでgintやgcharなの? intやcharではダメなわけ? C言語とのこういうちょっとした違いは 他にもいろいろあるの?
> 型がなんでgintやgcharなの? 移植しやすくする為の措置じゃなかったっけか
「g」が付いてるほうが移植性が高いのかねぇ。 みんなはそういうのをどうやって覚えたの? 解説本とかあまり売ってないみたいだけど…。
>>nXIVDau4 たとえばlongが64bitの環境でも、glong的に32bitであってほしい場合にlongの代わりにintやint32をtypedefするとかな。 データ構造の隠ぺいとかはWeb上の先人の残した情報だったり、技術書立ち読みだったり、Win32やNSPRとか同じことやってる実例を見たりとかで知ったよ。
gint32、とかにした方が判りやすいのに
>>325-326 なるほど、なんとなくわかった。
ありがと。チュ!
本は今度本屋で見てみる。
329 :
login:Penguin :2009/11/08(日) 22:19:03 ID:A1QtHV1W
GTK+をこれからやろうと思ってますが、C++よりC言語のほうがいいんでしょうか? 昔CもC++も少しずつかじりましたが、どっちも中途半端に終わって、今は頭の中でゴッチャになってます。 GTK+を始めるこの機会にどちらかをちゃんと勉強するつもりですが、どっちがいいか迷ってます。 CよりC++のほうが言語として優れていたり、C++を覚えたほうが何か有利だったりするんですかねぇ? gtkmmというのを使えばC++でもいけるんですよね? 何かアドバイスをもらえればうれしいです。
>>329 有利かどうかでいえば、一山いくらのプログラマとしても仕事に付けるかという観点ではC++/Java/PHP/VBあたりだろうな。
有利不利なんぞを気にするんなら間違ってもWindowsかWebアプリ、携帯以外見向きもしないほうがいい。GTK+なんかもってのほかだ。
マジレスするなら、C++にあまり慣れてないならCでGTK+やるのがいい。
ついでにPythonあたりも齧っとけばC+GTK+で面倒な部分もこなせるし、Linux方面のプログラムを開発するのに不自由はしないだろう。
>>329 Cはスーパーマクロアセンブラ、C++になって高級言語の仲間入りっつー感じかな。
ある程度規模の大きなプログラム作るんなら、絶対C++の方が有利。
Cははっきり言って時代遅れ。C++は習得しておいた方がいいよ。
組み込み系なんかだと、また話は変わってくると思うが。
GUIツールキットだって、殆どのものがC++を念頭に置いて作られてる。
Cが標準でC++ラッパーを後付けしたのはGTK+くらいなもの。
まぁ、それだけ歴史が古く、練り上げられてるとも言えると思うけど。
332 :
login:Penguin :2009/11/09(月) 00:10:55 ID:xrkj026G
>>330-331 どうも!
「C++に慣れてないなら」っていうのはオブジェクト指向が壁になるかもしれないってことですかねぇ。
一応JavaやPHPもちょこちょこやってるので、理解はしてます。
お二人の意見を合わせると、C++のほうがいいけど、慣れてなかったり自信がなかったりする場合は
Cにしておくのが無難ってとこですね。
もうちょっと考えてみます。
とても参考になりましたー!
>>332 オブジェクト指向が壁になるからではないよ。ほぼ1からC++とGTK+(とgtkmmの固有事情)やるよりはCとGTK+のほうが楽かなとね。
一応gtkmm以外にもJavaとPHP向けのバインディングがあるから、Cでやるのが面倒なようならそれぞれJava-Gnome/PHP-GTKで調べてみるといい。
gtkmmの固有事情くわしく
これから始めようと思ってるんだけど
>>132 ,
>>318 とか見ると気になる
335 :
329 :2009/11/09(月) 01:13:18 ID:xrkj026G
>>333 Cのほうがやっぱ楽なんですか。
といいつつC++も捨てがたいけど、
>>334 さんと同じくgtkmmの固有事情が気になります。
JavaやPHPのやつも存在は知ってましたが、CかC++でアプリを作れるようになりたいなぁと思ってて…。
>>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のほうを
わざわざPerlで扱ってる変態もいるしな
>>335 俺は Python でやってる。
C を使っている gtk+ プロジェクトだったら C で書く。
そんなに違いはないし、簡単。
Cだとヘッダーにいちいちプロトタイプ宣言しなければならなかったり
毎回コンパイルしなければならないのが面倒だからPython使ってる。
楽チン。
>>337 ぇー最近perlでGTK触りはじめたけど、変態じゃないやい><
とにかく完成するのが目的なら自分の好きな言語でいいじゃん。おれはRubyだぜ。
GTK+はバインディングが多いのがいいよね
342 :
login:Penguin :2009/11/16(月) 16:13:58 ID:VCRzBqJE
なんだかんだ言って、Cのコードは寿命が長いんだよね。 コストベーシスで考えると、GTK+の場合は全てCで書いた方が いいと思う。他のメジャーなソフトはほとんどCだし、 インテグレーションもし易いよね。
Cは初心者向けの本を昔読んで、当時はなんだか難しいなぁって思ったけど、 GTK+に挑戦したくてもう一度読んでみたら大して難しくなかった。 配列、関数、ポインタ、構造体の使い方の基礎がわかってたらGTK+を扱える? この程度の知識で始めるのはなんか怖くて・・・。
GTK+なら、型が決まっているから、 ほんとに基本的な知識だけで十分だと思う。 マクロやプリプロセッサもよく使われているけど、 非常にシンプルなコンセプトだし、問題ないとおもう。
もう「今年中」とかいうセリフが聞かれる時期になったか。
347 :
犬山ぽち丸 :2009/11/19(木) 00:11:09 ID:CpUTPEU6
# perlって聞いた時点で見る気なくした
DrawingAreaをAspectFrameで包むと上下左右に、 GNOMEでは1ピクセル、 Fluxboxでは2ピクセル隙間が開くんだが、なんとかならないものか
350 :
349 :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
gtk2.18.3をubuntu9.10でやっているんですが キーを押し続けている状態を知る事はできないんでしょうか? 今はkey-press-eventとkey-release-eventシグナルを使っているんですが キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて 押し続けている状態を知る事ができません。
key-pressのあとにkey-releaseがなければ押し続けていることになる
>キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて 押しつづけているのにrelease-eventがくるとかキーボードぶっこわれてるんじゃね
>>351 Xのレベルではそれが通常の動作(モディファイアキー(の一部)以外では)。
Xはautorepeat時にKeyReleaseと続くKeyPressでタイムスタンプを同一にして
送ってくるので、GDKはそれを利用して
>>352 のように見せるコードが
一応入ってはいる、が、環境や同時に利用するプログラムといった条件によっては
それが働かないみたい。
自分の環境だけ考えるならGDKの該当部分に手を入れて常にその動作をするように
してしまうのが簡単。そうでないならやはり同様に次のイベント
(gdk_event_peekで得るのかな)とそのタイムスタンプを見て判断するんじゃないかと。
>>352 >>353 >>354 レスありがとうございます。
gdk_event_peekはnullが返ってきたのでダメでしたが
gdk_event_getはタイムスタンプ同一のメッセージがしっかり返ってきました。
おかげさまで上手くいけそうです。
>>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 動かしたいように動かす事が出来ました、ありがとうございます。
とても基本的なところで躓いてしまってたみたいで、お恥ずかしい限りです。
GtkWidget ↑ ↑ GとWが大文字 これに気付くのに4日掛かった コンパイルが通って空のウィンドウが表示されたときは 雄叫び上げちゃったよ。
www とりあえず、なんだ、おめでとう
Debianスレで GTK+ でウィンドウ出すのに四日かかったって言ってた人かw
おめでとう、マジで さぁ早くシグナルをコネクトしまくる作業に戻るんだ
>>362 ガッ
って言ってほしいのね。
もぉ、寂しがり屋さんなんだからぁ。
なんでこのスレ過疎ってんの? プログラマー不在のスレなの?
>>364 そう思うならまず率先して何かを作って公開してみては如何でしょうか?
話題がないだけでしょ。
良くも悪くも枯れてるからな
gtk2hsで書いてみたけど思ったより使いやすかった
gtkで外部装置から受信した温度データをグラフ描画するソフトつくってる。 左3/4が描画領域で残りに現在時刻や表示倍率の設定がある。 連続してデータ受信すると、時刻表示のタイマーがとまったり、倍率設定 のコンボボックスが操作できなくなるので、スレッド分けしようと思うのだけど expose_eventを別スレッドにすることって可能?
できそうな気がするけど。 とりあえずやってみたら?
371 :
login:Penguin :2009/12/16(水) 20:46:38 ID:laS/Dg3j
>>365 作る気になれるようなことが必要なのではないですか。
>>369 すごいですね
勉強のためにぜひソースを見せて頂けないでしょうか?
もしくは、ソースリストを公開しているwebページを ご存知でしたら教えてください。
∧__∧ (´・ω・) いやどす ハ∨/^ヽ ノ::[三ノ :.、 i)、_;|*く; ノ |!: ::.".T~ ハ、___| """~""""""~"""~"""~"
受信を別スレッドでやるのが普通じゃないの
ブロックする可能性のある処理は別スレッドにしないと止まる
Exposeを別スレッドって、ぷっ。 さすがLinux。
何がおかしいのかよくわからん。
379 :
login:Penguin :2009/12/26(土) 01:54:27 ID:XiSC9KS7
GTK+の本を買おうと思うんですけど、この2冊だとどちらがいいですか? ・入門GTK+ ・Foundations of GTK+ Development プログラミングはCの基礎がわかっている程度です。 PHPもやってます。
両方買えばいいじゃない。 あと、入門GTK+の方は作者がホームページで 本の内容を公開し始めてる
Foundations of GTK+ Development は一部 google books にでてる
382 :
379 :2009/12/27(日) 00:54:04 ID:HfaPMpb7
>>380 両方買うと、結局一冊は読まないままになったりするタイプなので…。
あと、書籍代はケチるべきじゃないと思いますが、深刻な金欠状態なのです。
入門GTK+の作者サイトでの公開について、情報ありがとうございます。
休暇中に目を通してみようと思います。
>>381 Amazon USのレビューで「ネット上で読める」と書いてあったので、どこにあるのか気になってました。
書店になくて立ち読みできなかったので、Google Booksで読んで判断します。
どうもありがとうございました。
GTK+は公式チュートリアルが結構充実している方だと思うので、 それ読めばとりあえずリファレンスとサンプル眺めつつ使えるようになる。 それでも本が欲しくなるならあるウィジェットの使い方を 詳しく書いていて欲しいだとかマルチスレッドとの兼ね合いが 知りたいだとか(あまりいい例が出てこなくてすまん) 求めるものがはっきりしてくると思うので、 それから本を選んでもいいんじゃないだろうか。
384 :
379 :2009/12/27(日) 20:27:25 ID:HfaPMpb7
>>383 公式チュートリアルのことを知りませんでした…。
ダウンロードできたので、スマートフォン等にコピーして移動中でも読めそうです!
プリントアウトして持ち歩くのもいいかもしれません。
最終更新日が2002年10月27日と古いんですけど、問題ないですよね?
書籍を買ったほうが最後まで読みつづけようという意欲が持てる気がしますが、
とりあえず公式チュートリアルを読もうと思います。
ちなみに「Foundations of GTK+ Development」はGoogle Booksで見てみたら
とても良さそうでした。
「入門GTK+」のほうは著者ページで見つからなかったです・・。
自分でいいと思ったならそれ読め。もう知らん。
そう言うな。明日になればまたみんな仲良しななしさん
今日からGTK+を始めてみた 今までwindowsのvisual stdioしか使ったことなかったから、パスさえ通ってりゃ #g++ hello.cpp だけでコンパイルをやってくれると思っていた 今日一日かかって`pkg-config --cflags --libs gtk+-2.0`を知って ウィンドウを出せた 疲れた
VisualStudioだってオプションからディレクトリの設定しなきゃ ビルドすらままならないだろうに、何言ってんだコイツ ましてやコマンドラインからCL.exe呼び出すんなら、vcvarsall.batなり vcvarsall.batで設定される環境変数群を、予めユーザー環境変数に定義して おかなければCL.exeもg++と同じエラー吐いて止まるだろうに・・・
pixmapの背景色を黒くしたキャンバスを作って その上に画像と文字を描画してて、文字は白 これに対してニコ動のコメント表示/非表示みたいなことをやりたい 文字を描画するときのみXORモードで書いてるんだけど 背景の黒の上に書かれた物は消えるけど、画像の上に書かれた 物は黒抜き去れて残ってしまう 説明わかりにくいかも知れないけど、なんか良い方法無いかな
文字を描画しないだけでいいんじゃないの?
空気の福田はともかく、徳井が苦手でねぇ…
GTK+を使って記述されているソフトとしては gimp以外だとどんなものがありますか? ソースリストを読んで勉強したいのですが
2chブラウザのJDとか、画像ヴューアのgqviewとか。
ツールバーにウィンドを表示しないようにするにはどうすればいいの?
400 :
login: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 はインストール済みか最新バージョンです 何もしません とでます。 ...よろしくお願いします。
チュートリアルどおりやれば躓かないとおもうんだけどな gtk2, gtk2-develを入れて gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0`
402 :
login:Penguin :2010/01/26(火) 16:11:56 ID:R1nywYDP
>> 401 遅くなりましてすいません。返信ありがとうございます。 うまくいきました。 ウィンドウが表示されたとき、感動しました。 でも、emacs からはコンパイルできませんでしたので、リンカーあたりの 設定かな?と思っています。 何はともあれ、ありがとうございました。
403 :
login:Penguin :2010/01/26(火) 16:57:00 ID:R1nywYDP
またまたお願いいたします。 linuxにおいて、 windowsの SetCursorPos() GetCursorPos() に相当するものはありますか? 参考リファレンスなど紹介してもらえれば助かります。
405 :
login:Penguin :2010/01/26(火) 18:04:33 ID:R1nywYDP
>>404 返信ありがとうございます。
...勉強します。
>>402 pkg-configコマンドが何なのか調べるんだ。
407 :
login: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()下行のログが出力されない) 原因や対処法をご存知の方いらっしゃいませんか?
>>407 突っ込みどころが3点ほど。
・rc.localに登録して起動し、さらにログインした後にも起動・・・?
・gtk_init()だけ実行するプログラムを作ったの?
だとしたら壮大な勘違いをしている。gtk_init()関数が何をする関数なのか調べるんだ。
・「ログ」とは何のログ?ハングしているらしい、では分からないのでソースをUPするんだ。
>>408 ありがとうございます。すみません、説明不足でした。
ちょっとソースは長いので文書のみで失礼します。
プログラムは、rc.localで起動した時点ではgtk_init()をコールしない作りにしてます。
その後、ログイン後にコンソールから別プログラムを通してプロセス間通信によりコマンドを送信、
そしてコマンドを受信した時点で gtk_init()をコールさせる形にしてました。
ログは、
printf("call gtk_init\n");
gtk_init();
printf("call end\n"); ★
のようにして、★が出力されない感じです。
その後の調査で、どうやら rc.local起動させた場合、環境変数 DISPLAYなどが
全く設定されていないようです。
そこら辺に問題有りかと思っているのですが、なにぶん、勉強不足でして。
時間も無いので質問させて貰った次第です。
DISPLAYも何も、Xの起動はrc.localより後なんだぜ? プログラム分けるんじゃ駄目なんかい
時間も無いので 時間も無いので 時間も無いので 時間も無いので 時間も無いので
>>409 「GTK初心者」と言うよりLinux&プログラミング初心者のようですね。
貴方にGTKはまだ早いです。環境変数やXの基本が理解できていないと
説明されても分からないと思いますので出直してきて下さい。
お金も無いよ お金も無いよ お金も無いよ
>>410 ありがとうございます。
inittabで初期化レベルを分けていることもあり、
てっきりrc.local前に起動処理が走っているかと勘違いしていました。
お恥ずかしい。
>>412 おっしゃるとおりです。
出直してきます。
>>414 DISPLAYが設定されてなくて、Widget使わないなら、
GObject関係を使うためだけなら、g_type_init ()すれば良いよ。
有名なエラーが出るからgtk_init()使ったってエスパーしてみた。
416 :
login: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の値でエラーが出るようです。関係する記述を確認しましたが問題ありません…
エラーメッセージを読んでみましょう acitonsが宣言されていませんよ actionsと間違えていませんか?
418 :
login:Penguin :2010/02/07(日) 17:18:05 ID:jjKybwb6
>417さん ごめんなさい、本当に気づきませんでした。エラー文を読んでいたのに…ありがとうございました
ググれ秀才
gtkmmをこれからやってみようと思ってるけど、 入門GTK+を読みながらC言語で練習するより 最初からgtkmmでC++使ったほうがいい? gtkmmの入門書がないみたいなので、 取っかかりとして入門GTK+を候補にしてるんだけど…。
423 :
login: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割は、 前記のとりあえずリビルドです。
1.2のランタイムぐらい入っててもいんでない?
ちょっと自前で描画しようとすると、gdkとcairoが混在していて 煩雑としてるなぁ。 少なくともGDKの描画関連のAPIはもういらないだろう。 3.0辺りでばっさり消すとかしてもいいんじゃないか。
GTK(+glade)を使ったあるプログラムを ・HP-UXサーバ ・RedHat Linuxサーバ でそれぞれコンパイルおよび動作させ、 別のLinux端末に表示させたところ、 表示や動作自体は問題無いんだけども、 エディットボックスへの入力で RedHat Linuxの方は日本語入力を受け付けてくれません。 ちなみに、それぞれに入っているGTKはともに1.2です。 SCIMとかの環境は、一見同じっぽいですが・・・・ どこか見るべき箇所はあるでしょうか? ちなみに、glade自体も HP-UXは日本語入力を受け付けてLinuxサーバの方は 日本語入力を受け付けてくれません。 gladeの問題なんですかねぇ・・・?
427 :
login:Penguin :2010/03/12(金) 16:52:20 ID:sdgtdQtC
Gtk::Dialogの派生クラスを作成してある条件の時表示させています。 表示後一定期間経過したら自動的にそのダイアログを閉じたいのですが、 どうすればいいのでしょうか。 特にダイアログにこだわっているわけではありません。 何かメッセージを表示 -> 一定時間後に自動的に消去 が実現できればいいです。 よろしくお願いします。
>>427 g_timeout_add関数ではだめでしょうか?
gtk_widget_drawを呼ぶとたまにアプリが落ちる 調べたらgtk2では非推奨になってた かわりにgdk_window_invalidate_rect使えって書いてあったから それ使うようにしたら、exposeイベントハンドラに入ったり入らなかったりするようになった
Xawで作られたソフトのWidgetをGnomeテーマのスキンっぽく 変える方法ってありますか?Xaw3dみたいな
>>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;
}
433 :
login:Penguin :2010/05/01(土) 02:23:02 ID:ZoBub0ZC
あるデータファイルをどんどん読んで処理しながら、1秒に1回その途中経過を Windowに表示する、みたいなプログラムを書こうとしています。 Windowに表示する部分は、gtk_main()を呼ぶ前に、g_timeout_add(1000, draw, NULL) のようにしてタイムアウト関数を使えばいいとして、データファイルを読み込んで 処理する部分は、どこに書けばいいのでしょうか? スレッドとかを使わずにやりたいのですが。
g_io_add_watchとか?
435 :
login:Penguin :2010/05/01(土) 21:52:51 ID:5eA3cNHe
LinuxでGTK+やってる人はWindowsでも主にGTK+で書いてる? WindowsのAPIは使いませんって人いるのかな。
そもそもWindows使いません。
437 :
login:Penguin :2010/05/02(日) 06:00:37 ID:J+HCMgwe
>>433 スレッドを使わない方がめんどくさいと思うんだけどね。
ずーっと処理し続けて一秒に一回描画するって事だと
その処理の間は入力受け付け無くてもOK?
その為のスレッドなんだけどなぁ。
シングルCPUでもそう言うことが出来るのがスレッドの良いところ。
それでもスレッドを使いたくないというなら、こまめにシグナル飛ばしっこ
するしかないと思う。
簡単なシミュレーション用のGUIラッパ作りたんですが、 Qt4とgtkmmどっちが作るの楽ですか? どっちもバグてんこ盛りそうで、javaやM$畑に生まれたかった
>>438 マジでバグテンコ盛りだからいまからでも上にJava+Swingあたりでやらせてくれって掛け合ったほうがいい。
ちゃんと上にQtもGTK+もバグテンコ盛り過ぎてプロダクションレベルに使えないって直訴するんだぞ。
>>438 vala とかどうか。バグが多いかどうかはプラットフォームに
よる部分も多いと感じるが…win ならC#で組むのが楽だとは思う。
441 :
login:Penguin :2010/05/04(火) 09:52:32 ID:gZYcN+Ue
>> 439 使いこなせていないだけじゃないの。
なんでこのスレ、ム板じゃないの? SDLとかはちゃんとム板でやってるのに なんでGTKはのけ者なの? いじめに合うの?
443 :
login:Penguin :2010/05/04(火) 21:28:25 ID:9ORU/lJS
窓専用じゃん。
445 :
login:Penguin :2010/05/04(火) 21:47:13 ID:9ORU/lJS
自分で立てればいいぢやん
まぁええやんここにも有っても どうせ両方見てるし
>>433 g_idle_add関数がいいかも。
>>435 WindowsでもGTK+を利用してるけど、必要ならWinAPIも利用するよ
ちないに、LinuxのGTK+とWindowsのそれとは挙動がちがうことがあるから
注意が必要
448 :
犬山ぽち丸 :2010/05/22(土) 13:39:02 ID:CFJ0lXX6
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;}
この板の奴には分からんだろ
gdk-pixbufの新しいバージョンとソースくらは確認できるだろ?
くちごたえだけいっちょまえ
またgdk-pixbuf分離したのかめんどくせえな
あらっ?PPMの色反転してね?
ああ勘違いだった、反転フィルタ効いてた
ValaでGTK+ vs C++でQt の構図に持って行きたい。
valaつかうぐらいなら、gtk#つかうだろ
いやいや、Valaは良い言語だよ。 実行時に余計なライブラリとか要らないし。
gtkbuilder対応もうれしいですね。 > vala
461 :
login: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
>>461 event_box.add(image[i])
event_box.show_all
とか
463 :
login:Penguin :2010/08/23(月) 22:46:19 ID:UjVUUhyV
gtkでサブディスプレイにウィンドウを表示するのはどうやればいいんでしょう? メインがlocalhost:0.0でサブがlocalhost:0.1になってます。
それはX用語(GTK+でも)でスクリーンというので GtkWindowのscreenプロパティに表示したいgdkScreenを入れるんじゃないかな?
465 :
login:Penguin :2010/09/06(月) 00:37:50 ID:DZ6K0yAz
GTK#なのですが、.NETのWinFormsでいう、 SuspendLayout() と ResumeLayout() はどうすればいいでしょうか?
466 :
login:Penguin :2010/09/29(水) 06:17:42 ID:Xcx5gfP/
質問です。 GtkBuilderで定義したウィンドウを複数表示するにはどうすればいいでしょうか? 一つだけだったら、gtk_builder_get_objectで取得して簡単に表示出来ます。
>>466 GtkBuilder を複数生成すればいいんじゃないの?
自分がよくやるのは、GtkBuilder を複数生成して gtk_builder_add_from_string で定義を取り込み
Gtkビルダー?マイクソソフトのC++ビルダーみたいな感じか? と思って検索しようと思ったが堪えた
GTK+のRAD開発ツールってgladeじゃん
470 :
466 :2010/09/30(木) 03:18:19 ID:oEA2zNJX
>>467 ありがとう。その方法でやってみる。
>>468 GtkBuilderは、以前のlibgladeにあたるもの。
それに、C++BuilderはMSじゃないぞ。
>>469 もちろん、Glade使ってXMLを作成してるよ。
それを読み込むのがGtkBuilder。
cairoを使って書かれたゲームとかありますかね? 簡単なものでいいのですが
472 :
login:Penguin :2010/10/04(月) 11:18:38 ID:9wJE7nSN
gtkmm使ってもなんか書きにくい Python使ったら楽かな
>>473 余程のものじゃない限り、性能的に問題とはならないと思うから、スクリプトは便利だよ。
まぁ、俺は ruby なんだけど。。。
PythonならC++並みに開発環境整備されているし、Ubuntuのアプリも多くが Python + gtk で開発されているよ。
PerlとPythonなら どっちがいいですか?
gtkの開発するなら圧倒的にpython、としか言えんだろこのスレじゃ
CだろJK
「PerlとPythonならどっちがいいですか?」 「CだろJK」 ぱねぇっす! やっぱハッカーのひとはぱねぇっす!!
481 :
474 :2010/10/08(金) 23:53:29 ID:YC1HKIpZ
ruby 以外のバインディングの事を知らずに書くけど、今時はどの言語でも GtkBuilder を使えるだろうし、 どの言語がいいか何て、自分にどの言語が合ってるか次第なんじゃないの?
>>481 C/C++ 以外では、
gtkが公式にサポートしているのがPython
Gnomeの公式アプリに使われているのがPython
UbuntuやFedoraでデフォルトでインストールされているのがPython
Anjuta等GTK系開発ツールのサポートが一番充実しているのがPython
483 :
474 :2010/10/09(土) 00:20:06 ID:HCJJF52G
>>482 おぉ、Python は gtk で公式にサポートされてるんだ。
それは、いいねぇ。
ruby も入れてくれんかな。
何でみんなPythonが好きなんだ? 忠誠を誓ってるGoogle様が使ってるから、好きなふりをしてるだけか? そうはいっても本当はPerlが大好きなんだろ?
日本のRuby右翼と同じだと思われたくないから
Perlは3日たったら自分の書いたコードでも解読に苦労することがある。 Pythonは30分チュートリアルを読むだけで他人の書いたコードでもスラスラ読めることが多い。
それでもボクはCがいい
/ ,' 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::::::{ |
そのAAを壁紙にしたい
pythonって,vbaみたいな位置付けだな
491 :
login:Penguin :2010/10/19(火) 16:15:51 ID:EWnEpHL/
GTK+を使ってプログラムを作ると、MacOSXでボロボロな結果になるから使わないほうがいい。
位置づけとは微妙 pythonは、VBAほど腐ってはいないぞ ところでVBAの近代化って進んでいるのか? Access VBA甘グラマ供の再利用は由々しき問題ぜよ
VBAも.netが使えるっぽいから、近代化進んだんじゃないの?
>>491 どう考えてもGTKが悪いのではなく糞マックが悪いと思うんだが。
どっちが悪いという話はしていないと思う。
>>494 GTK+がマルチプラットフォームになるように吸収するんだろ?
だったら、Macは悪くない。
かと云って、「GTK+が悪い」と云うのはおこがましい。
文句云っていいのは、それ相当のものを作れる人だけだ。
>>498 「同じようなモノをつくれるひとでなければ批評してはいけない」というのなら
・linuxの○○の部分が悪いといっていいのはOS開発者だけ
・ゲームの○○が面白くないといっていいのはゲーム開発者だけ
・携帯電話の○○が使いづらいといっていいのは端末開発者だけ
・新作映画のストーリーラインを批判していいのは映画監督だけ
そういうのって言論封殺っていわない? オープンソース風土とはだいぶ違う文化じゃない?
WindowsでもLnFはぼろぼろだよね。
osxのgtk+ってx window版とネイティブ版とあるんじゃなかったっけ?
502 :
login:Penguin :2010/10/22(金) 10:57:35 ID:i0oNjkXQ
Windows7でも見た目が最悪になるからな。 MacOSXみたいに日本語入力ができないとか絶望的ってほどではないが。
Pythonバインドでも同じ問題って起こるの? 今日からPython勉強してGUIなアプリを作ってみようと思っていたのだが・・。 Qtのほうがいいのかな。でも、GNOME使ってるしGtkがいいんだよな
505 :
login:Penguin :2010/10/24(日) 07:46:05 ID:Vhl0qsDm
残念だが、日本語云々の話はWindows1.0のレベルにも達していないというのが現実。 開発体制の問題だろうね。
酷いと思うけどさすがに1.0はないだろ それに日本語(2バイト文字)関連はGtkよりQtのが酷いしマシな方
GtkTreeView内のテキスト(gtk_cell_renderer_text_newで設定したもの)がカラムの幅を超えたら自動的に折り返して次の行に表示するようにできませんかね? 現状はカラムの幅を超えた部分は消えてしまいます。自分で改行を入れた場合は次の行に表示されるので折り返しも出来そうな気はするのですが。
TreeView内にGtkCellRendererTextでテキストを表示する場合に、一部の文字だけ色を変えたり太字にしたりすることは可能でしょうか? あるいはTreeViewにGtkEditableを格納するようなことができればそれでもよいのですが。
>>510 pango markupで対応するんじゃね?
>>511 g_object_set (renderer, "markup","ab<b>cd</b>e", NULL);
とかでできました。ありがとう!
GtkTextIterのリファレンス読んでて、iterって単語がいっぱい出てくるけど これって、日本語に訳すとどういう単語が適切なのかな? iteratorで「反復子、繰り返しの概念」って出てきて、いまいち意味がつかめず iterって出てくると、まったくもって意味がわからん。 ググっても、熱核融合炉とか出てくるし…
イテレータはイテレータだよ ループの抽象化
>>514 iteratorとiterは、まったく同じと考えりゃいいということ?
>>515 正確な話は分からないけど、Gtkで出てくる?Iterの類は"位置を指す物"と理解してる。
GtkTextIterでいうと、GtkTextBuffer中のどこかの位置を指す。
イテレータだと、意味するものが広くてピンとこない感じがする。
かといって、訳す場合に他にいい単語があるかは分からない。
ごめん、文字化けした "?Iter"は"なんとかIter"ってことね
>>516 ものすごく参考にさせていただく。ありがとう。
C++のイテレータはポインタと同じ動作をするものと考えられている。 ポインタのようなものっていう概念が一番しっくり来る。
>>519 ものすごく返答が遅くなったけど、感謝します。
GTK+のリファレンスを見てると、ところどころに "… is deprecated and should not be used in newly-written code." ってのが、出てきます。 「推奨しないし、使うなよ」って意味だけど、どうすればいいの? 公開する予定の無いプログラムだから、無視して使ってるけど。
他のやり方があるはず
GtkTreeViewでアクティブなRowをハイライトして色を反転させる 機能を無効にすることはできますでしょうか? 自分の環境ですとアクティブなRowは青い背景に白い文字でハイライト されてしまいます。 RowのSelected状態は変えることができるのですが、そちらはRowが Select時に灰色っぽくなるだけで問題ないのです。ハイライトの機能 の方を無効したいです。
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); と、ボタンにアイコンを付けようとしても、アイコンが出てきません。 上の場合、「キャンセル(_C)」というラベルだけ出ます。 メニューバーにアイコンを付けようとしても、アイコンが出ません。 何か欠けてるんでしょうか?
gtk_button_set_image()の説明に"gtk-button-images"の設定によると書いてあるから調べてみて
>>527 つーか、俺もこれずっと悩んでた。
原因が分かってスッとしたよ。ありがとう!
>>527 なんかよくわかんないけど、オレからもありがとう!
>>527 なんのことかわからんけど、俺からもありがとう!
MinGWでWindowsむけにGTK+アプリをクロスコンパイルしている人はいるのだろうか。 Windows上で環境構築せずにすむから楽そうなんだけれど。
>>532 最近のFedoraはmingw関連のパッケージがたくさん追加されているから
Windows向けのクロスコンパイルは簡単だよ。
Fedoraかぁ…。 調べてがんばってみる。
TreeViewでCellRendererTextで描画してるカラムについてなんですけど、CellRendererTextにwrap-widthを設定した場合、そのカラムをwrap-width以下にリサイズすることができなくなってしまいます。何か回避方法はありますか? 欲を言えばwarp-widthがカラムの幅に対して自動的に変わるようにしたいです。
>>536 おお、pythonだけどCでも全然いけそうな対処ですね。
ありがとうございます!
GtkTreeViewで質問です。 gtk_tree_view_set_grid_linesで水平のグリッドラインを表示した状態でcell-background-gdkを使ってセルの背景色を設定しているのですが、色をつけたセルだけグリッドラインが消えてしまいます。何か解決方法ってありますか?
539 :
login:Penguin :2011/01/09(日) 09:14:57 ID:urRBMp8d
GTKを利用したプログラミングの勉強をしているのですが、不明な点があり質問させていただきます。 GTKにて作成したウインドウを常に最前面に表示しておきたいのですが、 それを実現するにはどのようにすればよいでしょうか? ビュアーのようなものを作っているのですが、他の作業をしながらも確認したいため 他のウインドウより手前に表示しておくことが出来ればと考えております。
>>539 >GTKにて作成したウインドウを常に最前面に表示しておきたいのですが、
WM(ウィンドーマネージャ)側の設定で、できるんじゃないのかな。
gtk_window_set_keep_aboveというのがあるが、うまくいくかはWMに依存する
>>541 ありがとうございます。
うまく動きました。
おっさんにもわかるPYTHONの ”ウィンドウを表示するために--クラスを作成する” で >> self.wTree.add_from_file(os.path.dirname(os.path.abspath(__file__))+"/"+self.gladefile) のところで glib.GError: root 要素が間違っています: 'glade-interface' となり止まってしまいます。どなたか解決方法がわかる方お願いします
しらんが os.path.join(os.path.dirname(__file__), self.gladefile) とかな
545 :
543 :2011/01/10(月) 17:33:42 ID:pdeWcU/o
最初から作り直してわかったんですがgladeのほうの設定がおかしくなってたみたいでした ご迷惑おかけしました
546 :
login:Penguin :2011/01/11(火) 21:47:15 ID:vH5X5SgR
Gtkのアプリケーションを勉強しているのですがわからないことがあります。 TreeViewを利用して、計算結果が順次追加されていくアプリケーションを制作しているのですが、 計算結果が追加されていくに連れて結果を見るにはスクロールが必用になっております。 自動でスクロールを一番下に持って行くにはどのようにすればいいのでしょうか? 理想としては、スクロールが一番下にされていれば、リストが追加されるたびに常に一番下に スクロールされ、スクロールが途中になっていれば項目が増えてもスクロールは維持。 というふうにしたいです。 ScrolledWindowのset_vadjustmentを利用すればいいことはわかったのですが、 うまく動かすことができません。
便乗質問 gtk.TreeViewColumnで幅を指定しているときにその幅を超える文字列は折り返したいんだけど、オプションが見当たらない。 オプションってないの?
gtk.CellRendererTextのwrap-width
550 :
548 :2011/01/12(水) 18:24:47 ID:vB7prOwP
>>549 ありがとう
CellRenderTextのほうで折り返しが設定出来たのか。
考えてみると、確かに折り返すのはTextだね。
関連でもうひとつ質問させてください
TreeViewColumnをset_resizable( True)にしているんだけど、カラムがリサイズされたときはどこのシグナルがでる?
自分なりに捜してみたのだけど、みつからない、。
GTKなんて時代遅れ
時代はQ'tだってか?www
553 :
548 :2011/01/12(水) 21:41:05 ID:vB7prOwP
上に同じ質問がありましたね。 検索に出て気づきました。 すみません。ありがとうございました。
ねらのみなさんに質問させていただきます。
正確には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
連投すいません。 本家のフォーラムで聞いてみようと思います。
初心的な質問でスミマセンが 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__": 略
ブラウザやエディタの上で、 マウスカーソルの下にあるテキストを取得する単純な 方法ってあるんでしょうか?ダブルクリックすると反転する単語 を取り込みたいのですが。出来ればトリプルクリックで反転する 一行も一緒に取り込みたいです。
すいません、アプリケーションによって トリプルクリックでの反転の仕様は違うようですが、 マウス位置が所属するパラグラフ、単語、行を同時にとりこみたいのです。 言い忘れましたが想定する言語は英語などアルファベットのものです。
GTK+3.0のリリースが楽しみだなぁ Windows版とかMac版の出来が気になる
>>561 遅れてすみません
self.mainWindow.set_title(str(self.number1))
に直すとウィンドウのタイトル欄の方に表示
おかげで一歩前進できたありがとうございました
566 :
login:Penguin :2011/01/25(火) 22:03:31 ID:93ZVq4E+
家計簿のようなものを作りながらPyGTKの勉強をしております。 TreeViewを使ってリストを作成しているのですが、 ID 値段 名前 メモ 1 100 コーラ 自販機 2 200 カルピス 自販機 のようなリストがあるとして、リスト中を右クリックすると編集メニューを出すようにしたいのですが、 右クリックした際にメニューを出す方法や、右クリックした列の値の取得方法がわからず悩んでおります。 どのようなコードで実現できるでしょうか?
>>567 いろいろなワードで調べてみたのですが、見つけることができませんでした。
>>567 の検索候補も見てみたのですが、TreeViewで右クリックした時の処理はあるのですが、
右クリックした行の値を取得する方法はありませんでした。
>>568 テストしてないけど、gtk.TreeView.get_selection()で取れない?
VBoxにLabelやEntryをいくつか配置すると高さが全て均等になりますが、高さを設定するにはどうすればいいですか?
ぴーな?
GTK+を使ってシリアルポートで自作ハードウェアと通信することは出来ますか?
574 :
570 :2011/01/27(木) 04:23:46 ID:HXLIqy/B
HBOXでは高さの指定ができないのですかね
575 :
login: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" どのようにしたら正常に表示できるようになるでしょうか。
ロケールやフォントを変更したらどうだろうか?
gdk_draw_ナントカはdeprecated cairo使ってね
TreeViewの文字列にURLがあればハイパーリンクにしたいと思っているのですが、TreeViewの文字列を ハイパーリンクにするにはどのようにすればいいのでしょうか?
>>578 g_spawn_command_line_sync()でgvfs-openコマンド呼べばいいんじゃね?
ダメならエラーが返るだろうし。
URLかどうか判断するなら、GRegex使うのが良いのかな?
3.0 releaseしてたんだな
結局、OpenGLは統合されなかったか…
以下のように画像を表示するだけのプログラムを作成しました。 この画像を表示したまま、プログラムを終了したいのですが、 そのようなことは可能でしょうか。 (他のプログラムに上書きされるまで、プログラム終了後も画像を表示しつづける。) /* 画像表示領域の生成 */ 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();
ウィンドウの×ボタンを押したら隠れるのはすぐできるけど、何がしたいのかよくわからないので教えて
>>583 説明が少なくてすいません。
X86 Linux PCを使って業務用のシステムを作っています。
PCを起動して、OSが立ち上がったあと、自動で以下の処理を行います。
1)USBメモリが接続されているチェックします。
2)もしUSBメモリがマウントできたらファイル(数百Mバイト)をHDDにコピーします。
3)ファイルコピー完了後に、メインの処理を行います。
2)のファイルコピーに時間がかかるため、その間に「しばらくお待ちください」という静止画を
フルスクリーンで表示したいんです。1)〜3)の処理はシェルスクリプトで行い、
#!/bin/bash
(省略)
|
静止画を表示
cp aaa.bin /temp // ファイルコピー
静止画を消す
|
メインの処理
という感じでやりたいと考えています。
シェルスクリプトでやるのが最適かどうかわからないのですが・・・。
で、教えたらお前の給料の何割くれるんだ?
プログラム起動→メッセージ表示→シェル実行→シェルの終了待ち→戻り値確認→終了処理 ではダメなん?
>>584 商売でオプソ使うのは止めたほうがいいよ
嫌味で言ってるんじゃなくて、法務的な問題が多すぎてメリット無いって
ソースコード開示しろって言われたとき、開示できる仕様なの?
客先とトラブルになっちゃうよ?
止めた方がいいと思うけど
588 :
583 :2011/02/13(日) 20:56:45 ID:L9k+0hAb
>>588 ありがとうございます。
なるほど、そのようなやり方があるのですね。
非同期のプロセスで画像を表示し、
ファイルコピーが完了したら
プロセスをkillするということで理解しました。
私の思っていることが出来そうです。
たいへん勉強になりました。
>>587 同僚の仕事を楽にするために、手伝っています。
今回の件のソースは公開しても全然問題ないのですが、
今後は気をつけようと思います。
以上、ありがとうございました。
591 :
login:Penguin :2011/02/19(土) 17:26:47 ID:7Kan848G
PyGTKを使っているのですが、TreeViewのデータを更新したいのですがどのようにすればわからず苦しんでおります。 行いたいことは、 TreeViewに(ID,TEXT)というカラムありデータが羅列しています。 そのIDを指定してTEXTの内容を変更したいのですが、どのようにすればいいでしょうか? どうかご教授頂ければと思います。
(´・ω・`)ご教示だろ
女教授だって
595 :
login:Penguin :2011/02/28(月) 09:54:32.03 ID:TADfIJ7a
スレ違いであれば申し訳ないございません。 LinuxでGTK+を使ってアプリを作成しています。 Windowsで言うグローバルホットキーを実装したくて色々調べたのですが該当するページが見つからず途方にくれています。 GTK+にはRegisterHotKey()に当たる関数はないのでしょうか? また、Linuxでグローバルホットを実装する方法があればご提示お願い致します。
>>596 gtk hotkey でググったら、一発ですが探してないの?
598 :
596 :2011/03/07(月) 03:13:28.76 ID:PnCjIDjh
>>597 すいません、ググり方が少し違ったようで・・・
「Linux プログラミング ホットキー」などで探していました。
ご指摘頂いたワードで検索した結果なんとか行けそうです。
本当にありがとうございました。
検索って難しいよね。目的の情報に準じた予備知識があって 適切なキーワードを選択できてはじめて探し当てられる。
>目的の情報に準じた予備知識があって あるある。だいぶ知恵ついてくると簡単に検索できるようになるけど、初めての分野だと一向にヒットしない よく初心者スレで「検索しても見つかりませんでした」「○○で検索すればすぐみつかるだろksg」 みたいなやりとり見るけど、正直初心者にはムリだよな…と思ったりもする。放置するけど 今度またググル先生がアルゴリズム変えるらしいけど、こういった点では改善がみられるかなあ…
3.0.0になってLnFはなんか変わった? 右側に0ナンバーが多いものはなんか怖いから、まだ試してない。
valaつかっているひといますか?
質問です。pygtkを使っています。 gtk.TextViewの背景色を変更するにはどのようにすればよいでしょうか?
605 :
604 :2011/03/18(金) 15:07:37.88 ID:hYpmyKaN
自己解決しました。 modify_base(state, color)で変更できました。
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.
607 :
606 :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 );
通らない理由がないからな
>>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(); });
>>609 コンパイルが通る方は適当に作った変数を食わしてたんだけど何故か逆にしてもコンパイルが通る
今は書き直して本物のargc,argvを入れています。
valaか〜・・・ドキュメント多い?
Valaは日本語のまとまったドキュメントは皆無だね。 英語だったら本家サイトのドキュメントで困る事はないよ。 最終的にC言語にトランスレートされるんだけど、そのソースを見るのが中々楽しいw
gtkで音楽を鳴らすことは出来ますか? どうすればいいでしょうか?
できません
音楽の方はGTKとは関係ないんじゃないかね? とりあえずALSA APIとか調べてみては?
すいません windowsでgtk+の開発環境を整えたいのですが参考になるサイトありませんか?
板の名前を100回読読んで最後にサーをつけてみやがれ糞ども
>>615 プログラム板にスレがあるよ
そっちで聞けば回答がもらえるかもしれない
こっちの質問は撤回して向こうへ行くといい
>>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をつかってるので・・・
>>619 どうすればいいのでしょうかって、どうすればいいのか自分で貼り付けてるじゃん。
Perhaps you should add the directory containing `gtk+2.0.pc`
to the PKG_CONFIG_PATH environment variable
あと質問のつもりなら、どのソースをどんな方法でコンパイルしたかくらいは書くべき。
>>620 すいません。以後気をつけます
それとパスの通し方がわかりません・・・linuxはあまり触ったことがないので
Linuxだと面倒臭くない、という理由だった人間がパスの通し方もわからんとか… 世の中なめてんのか?
すいません。日本語でおねがいします
LinuxでGTK+プログラミングしようって人間が日本語でないとだめって… 世の中なんめてんのか?
ごめん俺も英語ダメ 出来るだけ日本語の情報があるとうれしいw
>>624 親のすねかじってるお前よりマシだよハゲ
,,,,,,,,,,,,,,,,,,,, /": : : : : : : : \ /-─-,,,_: : : : : : : : :\ / '''-,,,: : : : : : : :i /、 /: : : : : : : : i ________ r-、 ,,,,,,,,,,、 /: : : : : : : : : :i / L_, , 、 \: : : : : : : : :i / Yahoo!翻訳したら /●) (●> |: :__,=-、: / < 負けかなと思ってる l イ '- |:/ tbノノ \ l ,`-=-'\ `l ι';/ \ 英語がだめな24・男性 ヽトェ-ェェ-:) -r'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヾ=-' / / ____ヽ::::... / ::::| / ̄ ::::::::::::::l `──'''' :::|
GTK以前にOSで躓いてるのか。 だったら分かってるだろうwinでやった方がいいんじゃないの? winはもっと分からないっていうなら仕方ないけど。
プログラミング系の英文を翻訳したらわけが分からなくなる 原文でわけが分からない方がましなくらいにね・・・ それとは別に ID:z2Mrc21j はもっと謙虚になるべき 下地が出来ていないし質問する場所が悪いし何を聞いたらいいか分かっていない気がする 何でパスを通したいのか分からないけど細かい質問はgoogle先生で検索してみるといいかも
>>621 パスの通し方はGTKと全く関係ないLinuxの基礎の基礎なので、スレ違いです。
631 :
login: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
まあ、パスの通し方でからんでるアホも、 同レベルとみなした方が良さそうではあるがな
それにしてもスレ違いの質問は認めちゃだめだろw グダグダになるぞw
グダグダにするぞ!の間違いだろw
libgtk2.0-devをインストールしてなかったわ コンパイルできた
>>634 1. パスの通し方でからんでるアホ
2. スレ違いのグダグダにからんでるアホ
3.
>>637 このレス
同レベル。
Gentooを使うとみみっちい*-devパッケージなんかで 悩まされずにすむんだけどなあ
HTML5バックエンドにはびびった。 これは、GTK+アプリがサーバーで動いていてクライアントでは<canvas>で 表示しているだけって事かな。 HTML5対応ツールキットとか沢山出てきそうだけど、やっぱりGTK+は最初から 完成度高いものが使えるから、かなりのアドバンテージになるはず。 インストールしなくてもWindows上でGTK+アプリが使える訳だから最高だな。
既存のGTK+アプリケーションを応用したクラウドサービスの予感
GTK+2で、Cairoを用いて一回の描画に非常に時間がかかるもの(例えばマンデルブローとか)を描画して、 GTKのDrawingAreaに表示するにはどうしたらいいんでしょうか? 直接DrawingAreaのGdkwindowにExposeイベント毎に描画するようにすると当然破綻します。 GTK+2だとCairoのSurfaceに描画してそれをPixbufにするというのもできない感じなので困ってます。
GdkPixmapに描画して、ウィンドウ再描画のときはそこから転送する。 むしろGTK+3でGdkPixmapがなくなって、オフスクリーンなpixmapを どうやって持つのか知りたい。 オフスクリーンなGdkWindowというのがあるらしいから それを作ってpixmapとして使えということなのだろうか。
643 :
641 :2011/05/24(火) 17:47:47.35 ID:SHDVYoHh
644 :
login:Penguin :2011/05/25(水) 22:49:33.40 ID:ypXSp7WE
GTK+3とかマジ迷惑なんですけど。
646 :
641 :2011/05/28(土) 02:19:42.28 ID:cDNuTVbD
>>644 ありがとうございます、それでやってみます。
647 :
login:Penguin :2011/05/29(日) 20:26:57.86 ID:zJJLH/V3
GtkTableにアタッチしたウィジェットのパディングを変更したいんですが gtk_table_attach()を変更の度に呼んでも問題ないですか? それともパティングを手軽に変更できる手段って他にあるでしょうか。
>>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 );
で調節します。
649 :
648 :2011/05/31(火) 20:30:44.34 ID:Bc3stUR8
650 :
login:Penguin :2011/06/02(木) 12:20:53.31 ID:9ZkW8466
>>648 ありがとうございます
GtkAlignmentでもパディング変更できましたが
GtkTableのchildrenの中の該当ウィジェットを格納した
GtkTableChildのx/ypaddingを変更することでもできるようです
651 :
login:Penguin :2011/06/03(金) 01:41:05.64 ID:UsW+bpf/
スレッドA,BにおいてAからBを終了させるpthread_close()に相当する処理を行う方法がgtkには無い。
653 :
648 :2011/06/04(土) 17:42:05.97 ID:lYXnt5Pq
>>650 お役に立てずにすみません。GtkTableChildを使った方がスマートですね。
ところで、Gtk 2.0のリファレンスにGtkTableChildクラスの説明がみつからないのですが
どこにあるか教えていただけませんか?
Gtk 1.0のほうは見つけたのですが、Gtk 2.0の方では見つかりません
公式の3.0のリファレンスにも無いですね もしかして直接触っちゃだめなのかもと思ったけど childrenにテーブルの中身がって書いてるしヘッダみろってことなのかも ところで画面解像度の変更やテーマの変更の感知はどのイベントを 受け取ればいいのか教えてください
655 :
648 :2011/06/06(月) 22:48:57.79 ID:Rnm0L+uO
UbuntuLinuxを使っていると、 ラブハンドルになるスクロールバーとならないスクロールバーがあるんだけど違いはなんなの?
>>656 私のほうでも試して見ましたが、
それでテーマ変更イベントの検出はできるようですね。
しかし、notify::styleイベントがgtkリファレンスに見つからないw
何のイベントなんだろう?
>>657 ラブハンドルになるアプリ名とならないアプリ名を書けば、
誰かが調べてくれるかも?
俺のためのスレはココですか?
debhelpを日本語化するプロジェクトはもう立ち上がっているのでしょうか?
devhelpです
cairoは死んでしまったのか… Firefoxに見捨てられ更新もほとんど無い
>>664 gitのログ見たけど更新しまくってね?リリース見ても5月中にも
pycairoとかcairommとかバインディング関係が更新あるしcairo自体は既に成熟期だろ
それとIDが惜しい
GtkDrawingArea を自分で XCreateWindow して作りたい時ってどうすればいいか教えてください。
自己解決した。 Gdk.X11Screen.lookup_visual () とか使えば、自分で XCreateWindow () する必要とかなかった。
669 :
login:Penguin :2011/08/22(月) 09:44:31.31 ID:56fggY27
そんなAPIは無いように見えるから どうしても欲しければ自力でGtkEntryCompletion相当のコードを書くことになるのかなぁ
671 :
login:Penguin :2011/08/23(火) 10:55:05.34 ID:fF4RpR06
>>670 ありがとうございます。
_GtkEntryCompletionPrivate構造体の定義がわからないので諦めました
672 :
login:Penguin :2011/08/24(水) 18:38:06.52 ID:CLJ7sudj
g_signal_connectでコールバック関数に渡せるデータって一つしかないですよね でもどうしても複数のデータを渡したい時ってどうするんですか? 例えば,main関数内でエントリーが3つとボタンがあって, ボタンを押したら3つのエントリーに入力されている文字列をg_printで出力する場合とか 初歩的な質問かもしれないけど,お願いします
674 :
login:Penguin :2011/08/24(水) 19:04:11.50 ID:CLJ7sudj
>>673 ありがとうございます
やっぱりそれしか無いですか...
なんで可変じゃなくてわざわざ一個だけなんだろうなあ
自分でラッパー書いて、可変引数版のg_signal_connectを自由につくってもいいのよ〜 一般的に複数引数渡すよりポインタ1個渡す方が効率的、と考えられてるんじゃないかな 普通は渡したいデータの型も文字列だけじゃないだろうし、Cだと型が予測できない可変引数を処理するのは面倒だと思う
>>675 調べてみると可変引数って色々問題あるんですね,知りませんでした
ラッパーって言葉も今知りました
勉強になります
677 :
login: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)でとれる名前を確認しながら扱う
三通り思いつきました、どうでしょうか?
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箇所がエラーになってしまいます。 だれか解決してください。
3.0の方針として、直接メンバー変数にアクセスしない事になったんで、 それぞれ、set_window, get_window みたいなアクセサ経由に変更すればOK
680 :
login:Penguin :2011/08/25(木) 08:20:25.79 ID:Yioj7fNN
>>677 GHashTableを使うのが一番楽そうですね
参考になりました,ありがとうございました
682 :
login:Penguin :2011/08/26(金) 09:59:15.55 ID:lIEWgrKL
dat復帰しろ
>>679 ,680
どうやらgtk+3は描画の高レベル部分をcairoに置き換えたがってるようなので、
素直にgdkによる描画をcairoで書きなおすことにします。
GTK+2で使用可能な2D plotterにはどんなものがありますか? GTK+3にも移行できそうなものでオススメがありましたら教えてください
あんたの言う「2D plotter」とは何なのかをもうちょっと調べなさいよ 「大判プリンター」で目的に合うならこちらを勧めるよ どうしてもプロッターならその理由が判らないと始まらないし GTK関係ない話にもなる
ベクトルDrawとかのライブラリの亊じゃね? gnuplotとかmatplotとかそういうの。 わからい人にはグラフ書くライブラリって言ったほうがいいのかな?
仰る通りライブラリのことです、GUIプログラミングのスレでの発言ですからね それじゃ調べたものを書きますね ・plplot5.9.6 古い環境を意識してるのか8-bit色制限?cairoが普通に扱えて且つPostScriptも吐けて好印象 ただ関数群が使いにくい印象 ・GtkExtra3.0.1(beta) の GtkPlot こちらはdemoを動かしただけですが若干もっさり描画? cairoすらwrappingしてるからからか? 他にあればそれも検討してその上で使うものを決定したいのです
>>689 ありがとうございます。出来ればCで使えるGTK+のwidget又はcairo_tに描画できるものでお願いします。。
グラフの枠,軸ラベル,グラフ自身,凡例
これらを書ける関数が用意されてると嬉しいです。cairoでガリガリ書く奴はgnome-system-monitorを参考にして
書きましたが何か違うなと感じました、「もっと楽できるものあるだろう」と
Rって言語は初めて知りました。R-devel入れてみましたが GtkDrawingAreaやcairo_tに書く方法が判らず断念しました
pychartはpython使う時は使ってみようと思います
gtk_image関連で、プログラム内でファイルを指定して画像を用意する関数はありますか? gtk_image_new_form_fileなどのように起動するときに指定するのではなく プログラム内で指定したいのです
get_image_set_from_file
>>692 すみません、それの具体的な使い方を教えてもらえないでしょうか?
その後に続く()の中には何を入れればいいのでしょうか?
devhelpを見ましたが、書いてある通りに入れるとコンパイルエラーが出ます
gtkwidget *image;
image = gtk_image_set_from_file (GtkImage *image,
const gchar *filename);
↑の*filename のところにファイル名を入れるのでしょうか?例えばaaa.png等
*imageのところも何か入れるのでしょうか?
gtk_image_new_from_fileでなんでだめなの
695 :
692 :2011/09/07(水) 00:54:07.56 ID:QF3RPTD4
>>693 gtk_image_set_from_file()使ってjpegでぱらぱら漫画作った
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/parapara_manga.git
いっしゅのモーションJPEGwww
>>696 何かの折にヘッダファイルとして使わせてもらいます
指示レス番まちがえたけど 訂正しねーよ!(我が家杉山)
謝る必要はこれっぽっちもないけど 「動けばいい」とかいう低い志は捨てようや
ボタンを押されたときに、シグナルコネクト先を変更したいのですが if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない) ボタンを押されたら、シグナルコネクト先を変更するにはどうすればいいのでしょうか?
>>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番目の案で記述しました。書き方はいろいろあります
>>705 ご親切にありがとうございます
解読してみます
GTKとcarioとpangoの関係を教えて下さい
なんと、全部文字数が奇数です。
ぼくもつくろっと。
>>713 >どれだけ高速化されたかが気になる
cairoで何をしようとしてるの?
何をしようとしてるかが関係あるの?
正直に白状するが、 glageのuser dataの使い方がわからないまま 実務で開発しちゃったりしてます。
あと、ラジオボタンとか、配列可して、コールバック関数を一つに まとめる方法もわからないまま 一個一個書いてます。 とほほ
EmacsとかVisual Studioみたいなマルチストロークのキーバインドって GTK+でできますか?
GTK+はEmacsで使われています
GTK+はEmacsではキーイベントの処理に使われていません
( ゚Д ゚)
cairoが高速化ってことはeclipseも早くなるのかね
723 :
login:Penguin :2012/03/29(木) 22:37:41.77 ID:CN8scaWa
anjutaを使ってみたところ gtk_signal_connectだと警告なしでコンパイルできるのに g_signal_connectだと暗黙的関数宣言のエラーになるんですが どうやったら直せるでしょうか?
どんな呼び方したのか書いてくれなきゃわからん 一番いい解決方法は DevhelpっていうGUIヘルプビューワ入れて g_signal_connectの説明読むこっちゃ ver.も気にせずに例を書くとシグネチャ違うみたいだねそれが一番幸せになれる
725 :
723 :2012/04/03(火) 21:46:17.80 ID:gvKF9Ts9
threadやmutex関係もgtk_の方は廃止になって、g_の方のみになった。3。0あたりから 基本的な関数はglibに集約して、ツールキット的な関数のみgtk 3で担当するように住み分けされた コンパイルの最中に廃止された関数と表示がでるソースは、いずれソースを書き換えないとビルド不能になる ちなみに最も基本的なlibcでも現在開発ラインの最新版だとgetsが本当にソースから廃止されてるので、getsが使われてるソースをビルドできなくなってる
ガチで使えないキット(GTK)
UGS Never use gets().
フォントサイズって10.5ptとか小数点で設定できる?
フォントサイズの指定方法がわかってて 小数点の指定ができるかって疑問なら やってみて自分で確認すりゃいいのに。
型がguintみたいだが
それがどうした
Gtk.TreeView.Selection.Mode = Gtk.SelectionMode.Multiple; に変更すると得られるGtk.TreeIterがおかしくなってしまう のですが、Multipleの時はSelection.GetSelectedは使えない のでしょうか?
Gtk.Label page_label = new Gtk.Label (title); page_label.KeyReleaseEvent += delegate { Console.WriteLine("!"); //←呼び出されない理由を説明してほしい! };
gtk_widget_set_events()
GTKは親切ではないなーと楽をしてきただけに思いますw
>>735 ありがとうございます
しかし、それらしいのが見つかりません
737 :
login:Penguin :2012/05/23(水) 21:46:04.65 ID:jdgnkMvj
GTKのGUIは更新をサボる癖があるようですが 無理やり更新させる方法はないでしょうか?
更新するWidgetを間違えてた! 解決
739 :
login:Penguin :2012/06/08(金) 19:02:58.11 ID:BmPo410Y
Gtk-CRITICAL **: IA__gtk_main_quit: assertion `main_loops != NULL' failed メインループ内でGtk.Application.Quit ();を呼ぶなって事だろうけど 終了させる方法はないのでしょうか?
gtk_main_quit()のソースコードを読めば解決。
>>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で以前と同じ動作になるらしい
from gi.repository import Gtk
このスレ的にはGTKのものをそのまま叩くっていうのは危険なこと?
意味わからん。
バッシングだな
え?ラッパーライブラリを介さず直接コールするって意味じゃないの?
Exactly
取り敢えずgtk_main_quit()
751 :
login:Penguin :2012/11/27(火) 12:00:27.00 ID:Mwv1yHjg
UbuntuでPyGTKを利用してアプリケーションを作っているのですが、一部パーミッションが与えられていないファイルへの書き込みを行いたいと考えております。 Ubuntu Software Centerからアプリケーションをインストールしようとすると、Authenticateというポップアップが出てきてパスワードを入力するとsudoの様にアプリケーションのインストールができますが、これはどのように実現しているのでしょうか? 自分でも書き込めるようにパーミッションを変更していることを前提にしているのですが、変更方法を知らない人や、一々変更した後にアプリケーションを起動するのが煩わしい人向けに、アプリケーションからsudoのようなことができないかと考えております。
>>751 pyは使えないのですが、この話はGTKのスレの質問でしょうかね?
Cだったらstatとchmod使うところじゃないかと。
>>751 もしかして:gksu
$ sudo command
のかわりに
$ gksu command
ってやると
GUIでパスワード聞かれる
口下手な
>>753 は、gksuを参考にlibgksuを使えと言いたいんだな?
libgksuのpythonバインディングもあるから安心だって言いたいんだよな?
755 :
login:Penguin :2012/11/28(水) 16:35:00.90 ID:a6DQ5WYq
polkit
質問させてください。 gtkmm2.4ベースでプログラムをいじっているのですが、画面操作せずにGtk::Dialogを閉じる方法が分かりません Dialog作成→threadで特定の処理を開始→処理終了→※Dialogを閉じる(画面操作せずに) と言う流れをプログレス表示などをして処理したいのですがrunした後にresponseをしてもhideしてもDialogが消えません 根本的に分かっていないのでしょうが・・・上記のような処理をするにはどうしたら良いのでしょうか?
758 :
login:Penguin :2013/03/07(木) 14:11:29.83 ID:QnTnog/x
こう書く方法ないかな? public class Window :Gtk.Window{ }
vala優秀そうだね でもwindowsでも使いまわしたいのでmonoから外れたくない
>>760 valaはwindowsでも普通に使える。
Gtk::Dialogはon_delete_eventを呼ばないのですか? 処理が途中の場合とかにダイアログを閉じるのを中止したいのですが、何処で中止させたらいいのやら
ちょっとチャレンジしてみることにしました FreeBasic導入したら、GTK+とCairoが入っていたので。 ネットとサンプルを参考にしながら、 ちょこちょこと弄ってみます。 お手軽に描写の綺麗なプログラムが書けるってことは素晴らしい。
764 :
762 :2013/03/23(土) 16:55:08.61 ID:PyYsgXcc
結局add_buttonで追加したボタンを使うのではなく、アクションエリアに普通のボタンを追加し、 connectしたメソッドで処理チェックを行なった後にresponseでIDを投げる事で一応動きは出来たみたいです。 もっと簡単な方法はないですか?
ちょっとスレチになるかもなんですけど、GTK使われたアプリをWindowsで自動操作したいのですが WM_LBUTTONDOWNなどで座標を直接指定でやってるんですけどMenuBar以外が反応してくれないです どうすればいいでしょうか?
766 :
login:Penguin :2013/05/10(金) 02:01:44.26 ID:Jlh16O1w
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だけ置き換えればよい。
ソースにバグありとみた。
http://www.tarnyko.net/en/ ここでWindows版のBroadway実行環境を配布してたから試してみたけど
遅くて使いものにならん…
asm.jsは良い感じなんで、GTK+アプリをそのままasm.jsにコンパイルして
ブラウザで実行出来るようにしてくれたら最高だがな。
同一アプリ上で、IconViewからFrameとかImageへDrag & Dropって 可能なんでしょうか・・・。 そんな感じのサンプルをご存知でしたら教えてくださいm(_ _)m
770 :
769 :2013/10/25(金) 16:54:19.59 ID:2AmnlVsx
すみません、
>>769 は出来るようになりました。
drop側の設定に問題がありました。
ところで、Imageから別のImageへのDrag & Dropは可能なんでしょうか。
Dragしても、IconViewの時のようにカーソルが変化しません・・・。
gtkmmでProgressBarの描画更新はどうやったらええねん set_fractionしても途中を描画してくれない
773 :
771 :2014/05/24(土) 09:12:07.41 ID:ESO9FbEd
>>772 それアクティビティモードというのと違う?
ナイトライダーをしたいわけではないんよ・・・
>>771 ,773
set_fraction() で、その都度増分を変えて、すぐ更新したいってこと?
queue_draw() で、PrograssBar の on_draw イベントを呼んでみたら?
775 :
771 :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 );
}
あれ? queue_draw() いらねーな。w
778 :
771 :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 );
}
}
779 :
771 :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 );
781 :
771 :2014/05/25(日) 10:38:49.48 ID:OwNsCCvJ
タイマーか〜処理がスパゲッティーになりかけているから使いづらいんだよね アクティビティモードの時は使いやすそう。 今少し弄っているんだけど、set_pulse_stepでステップ量設定しても反映されないな
783 :
login:Penguin :2014/06/08(日) 10:20:05.83 ID:kFAavqfc
ComboBoxでドロップダウンアイテムを選択した時に発生する イベントってなに?
signal_changed()
785 :
login:Penguin :2014/09/22(月) 18:34:36.01 ID:eWn3ghjY
本当は先にこっちへ書くべきだった。 gtk_mode gtk_fashion gtk_style gtk_pattern
786 :
login:Penguin :2014/10/03(金) 20:31:58.89 ID:3j8hGaDn
みなさん、人工言語の 高級低級の長所短所のチンチンはご存知?
技術系スレには自分で人口無能を作っちゃう人もいるからな。
>>786 が人間とは限らないよ
789 :
login:Penguin :2014/10/05(日) 12:54:17.13 ID:8NkrJ1Fe
かわいいかっぽれ
790 :
login:Penguin :2014/10/05(日) 14:16:26.58 ID:8NkrJ1Fe
人の嫌がる事をすすんでしましょう
すみませんが質問させてください gtkmmでボタンを作りボタンを押された時にソケットで通信しようとしたのですが select関数をした時に「リソースが一時的に利用できません」と出てしまい動きません コンストラクタでselect関数を使うと動くのですが・・・ gtkmmに通信を阻害する要因とか有るのでしょうか?
学校の課題でシューティングゲーム作ってるんですが、cairoで表示した複数の画像の手前、奥の位置関係を変えることってできますか?
はい。