GTK+プログラミング
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2007/09/05(水) 13:58:46ID:2SORZMjm-前スレ-
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/
0414login:Penguin
2010/01/28(木) 19:32:04ID:YXchBGq5ありがとうございます。
inittabで初期化レベルを分けていることもあり、
てっきりrc.local前に起動処理が走っているかと勘違いしていました。
お恥ずかしい。
>>412
おっしゃるとおりです。
出直してきます。
0415login:Penguin
2010/01/28(木) 21:55:00ID:WU2RMXovDISPLAYが設定されてなくて、Widget使わないなら、
GObject関係を使うためだけなら、g_type_init ()すれば良いよ。
有名なエラーが出るからgtk_init()使ったってエスパーしてみた。
0416login:Penguin
2010/02/07(日) 16:35:02ID:jjKybwb6何が間違っているのか、ご教示願います。
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の値でエラーが出るようです。関係する記述を確認しましたが問題ありません…
0417login:Penguin
2010/02/07(日) 17:08:07ID:KhA+E7Muacitonsが宣言されていませんよ
actionsと間違えていませんか?
0418login:Penguin
2010/02/07(日) 17:18:05ID:jjKybwb6ごめんなさい、本当に気づきませんでした。エラー文を読んでいたのに…ありがとうございました
0419login:Penguin
2010/02/09(火) 01:35:25ID:gRID6Pu90420login:Penguin
2010/02/10(水) 20:29:31ID:y7MwWf/g入門GTK+を読みながらC言語で練習するより
最初からgtkmmでC++使ったほうがいい?
gtkmmの入門書がないみたいなので、
取っかかりとして入門GTK+を候補にしてるんだけど…。
0421login:Penguin
2010/02/11(木) 13:48:24ID:AIMyey0J最終的にC++で書くのが目的なら、↓みたいなところがあるからC++で書けばいいんじゃない。
gtkまわりの日本語の情報が少ないから、言語は違うけどたまに参考にさせてもらってるよ。
http://book.geocities.jp/gtkmm_ja/docs/tutorial/html/index.html
0422login:Penguin
2010/02/12(金) 15:44:26ID:DJstgHYMそのサイト見てみます。
ありがとう。
0423login:Penguin
2010/02/17(水) 19:33:47ID:Ozbv3EUx# 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割は、
前記のとりあえずリビルドです。
0424login:Penguin
2010/02/17(水) 19:42:41ID:TkV44uU+0425login:Penguin
2010/02/21(日) 14:06:19ID:pTXZtDIq煩雑としてるなぁ。
少なくともGDKの描画関連のAPIはもういらないだろう。
3.0辺りでばっさり消すとかしてもいいんじゃないか。
0426login:Penguin
2010/03/11(木) 00:46:30ID:Vm2wsjJM・HP-UXサーバ
・RedHat Linuxサーバ
でそれぞれコンパイルおよび動作させ、
別のLinux端末に表示させたところ、
表示や動作自体は問題無いんだけども、
エディットボックスへの入力で
RedHat Linuxの方は日本語入力を受け付けてくれません。
ちなみに、それぞれに入っているGTKはともに1.2です。
SCIMとかの環境は、一見同じっぽいですが・・・・
どこか見るべき箇所はあるでしょうか?
ちなみに、glade自体も
HP-UXは日本語入力を受け付けてLinuxサーバの方は
日本語入力を受け付けてくれません。
gladeの問題なんですかねぇ・・・?
0427login:Penguin
2010/03/12(金) 16:52:20ID:sdgtdQtC表示後一定期間経過したら自動的にそのダイアログを閉じたいのですが、
どうすればいいのでしょうか。
特にダイアログにこだわっているわけではありません。
何かメッセージを表示 -> 一定時間後に自動的に消去
が実現できればいいです。
よろしくお願いします。
0428login:Penguin
2010/03/12(金) 19:39:46ID:37m6gC+Eg_timeout_add関数ではだめでしょうか?
0429login:Penguin
2010/03/12(金) 19:41:48ID:WSSuZVVDそこはらめぇーーーー
0430login:Penguin
2010/03/16(火) 23:40:15ID:u16nCOLZ調べたらgtk2では非推奨になってた
かわりにgdk_window_invalidate_rect使えって書いてあったから
それ使うようにしたら、exposeイベントハンドラに入ったり入らなかったりするようになった
0431login:Penguin
2010/03/19(金) 03:10:05ID:pTXFbkuH変える方法ってありますか?Xaw3dみたいな
0432login:Penguin
2010/03/22(月) 18:34:33ID:gITq0f63作ってみた。たぶん、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;
}
0433login:Penguin
2010/05/01(土) 02:23:02ID:ZoBub0ZCWindowに表示する、みたいなプログラムを書こうとしています。
Windowに表示する部分は、gtk_main()を呼ぶ前に、g_timeout_add(1000, draw, NULL)
のようにしてタイムアウト関数を使えばいいとして、データファイルを読み込んで
処理する部分は、どこに書けばいいのでしょうか?
スレッドとかを使わずにやりたいのですが。
0434login:Penguin
2010/05/01(土) 18:51:28ID:lTmE6Ym20435login:Penguin
2010/05/01(土) 21:52:51ID:5eA3cNHeWindowsのAPIは使いませんって人いるのかな。
0436login:Penguin
2010/05/02(日) 00:32:37ID:Bdebw0Wa0437login:Penguin
2010/05/02(日) 06:00:37ID:J+HCMgweスレッドを使わない方がめんどくさいと思うんだけどね。
ずーっと処理し続けて一秒に一回描画するって事だと
その処理の間は入力受け付け無くてもOK?
その為のスレッドなんだけどなぁ。
シングルCPUでもそう言うことが出来るのがスレッドの良いところ。
それでもスレッドを使いたくないというなら、こまめにシグナル飛ばしっこ
するしかないと思う。
0438login:Penguin
2010/05/02(日) 21:48:38ID:uNQYZGNaQt4とgtkmmどっちが作るの楽ですか?
どっちもバグてんこ盛りそうで、javaやM$畑に生まれたかった
0439login:Penguin
2010/05/02(日) 22:14:42ID:WSA7U0rvマジでバグテンコ盛りだからいまからでも上にJava+Swingあたりでやらせてくれって掛け合ったほうがいい。
ちゃんと上にQtもGTK+もバグテンコ盛り過ぎてプロダクションレベルに使えないって直訴するんだぞ。
0440login:Penguin
2010/05/04(火) 08:25:25ID:i62yYai1vala とかどうか。バグが多いかどうかはプラットフォームに
よる部分も多いと感じるが…win ならC#で組むのが楽だとは思う。
0441login:Penguin
2010/05/04(火) 09:52:32ID:gZYcN+Ue使いこなせていないだけじゃないの。
0442login:Penguin
2010/05/04(火) 21:20:07ID:C0XJN+7XSDLとかはちゃんとム板でやってるのに
なんでGTKはのけ者なの?
いじめに合うの?
0443login:Penguin
2010/05/04(火) 21:28:25ID:9ORU/lJSってスレがム板にあるけど?
http://pc12.2ch.net/test/read.cgi/tech/1147024203/
0444login:Penguin
2010/05/04(火) 21:36:12ID:C0XJN+7X0445login:Penguin
2010/05/04(火) 21:47:13ID:9ORU/lJS0446login:Penguin
2010/05/05(水) 17:49:24ID:NLGDqQjmどうせ両方見てるし
0447login:Penguin
2010/05/07(金) 23:05:29ID:ZSmA/qjkg_idle_add関数がいいかも。
>>435
WindowsでもGTK+を利用してるけど、必要ならWinAPIも利用するよ
ちないに、LinuxのGTK+とWindowsのそれとは挙動がちがうことがあるから
注意が必要
0448犬山ぽち丸
2010/05/22(土) 13:39:02ID:CFJ0lXX6縦書きビューワーを作ってみました。
ぽち*ろぐ: ぽちたて 0.1.0 をリリースしました
ttp://pochimaru.seesaa.net/article/150542330.html
0449login:Penguin
2010/05/25(火) 09:28:21ID:wq6kVR7Vおめ!
0450login:Penguin
2010/06/16(水) 00:53:38ID:U5l5xiNYこちらの書き方が正しくないのでしょうか?それとも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;}
0451login:Penguin
2010/06/29(火) 08:21:44ID:7ZTRAVs/0452login:Penguin
2010/06/29(火) 12:06:30ID:SCBkgPqa0453login:Penguin
2010/06/29(火) 13:07:25ID:7ZTRAVs/0454login:Penguin
2010/07/01(木) 20:38:54ID:ff1chlOv0455login:Penguin
2010/07/08(木) 13:05:20ID:kV57IwAm0456login:Penguin
2010/07/08(木) 21:04:54ID:kV57IwAm0457login:Penguin
2010/07/21(水) 21:06:32ID:eYcae5GBの構図に持って行きたい。
0458login:Penguin
2010/07/22(木) 01:58:11ID:PbDDQq9y0459login:Penguin
2010/07/22(木) 10:25:07ID:B8+a86z/実行時に余計なライブラリとか要らないし。
0460login:Penguin
2010/07/22(木) 18:59:19ID:P6pQJgjf0461login:Penguin
2010/08/09(月) 22:35:54ID:FqMSbruc2枚目の画像は表示されませんでした。
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
0462login:Penguin
2010/08/10(火) 19:44:28ID:fAaz4maQevent_box.add(image[i])
event_box.show_all
とか
0463login:Penguin
2010/08/23(月) 22:46:19ID:UjVUUhyVメインがlocalhost:0.0でサブがlocalhost:0.1になってます。
0464login:Penguin
2010/08/24(火) 05:56:03ID:+4na7v6gGtkWindowのscreenプロパティに表示したいgdkScreenを入れるんじゃないかな?
0465login:Penguin
2010/09/06(月) 00:37:50ID:DZ6K0yAzSuspendLayout()
と
ResumeLayout()
はどうすればいいでしょうか?
0466login:Penguin
2010/09/29(水) 06:17:42ID:Xcx5gfP/GtkBuilderで定義したウィンドウを複数表示するにはどうすればいいでしょうか?
一つだけだったら、gtk_builder_get_objectで取得して簡単に表示出来ます。
0467login:Penguin
2010/09/29(水) 07:30:54ID:gR2Kn98zGtkBuilder を複数生成すればいいんじゃないの?
自分がよくやるのは、GtkBuilder を複数生成して gtk_builder_add_from_string で定義を取り込み
0468login:Penguin
2010/09/29(水) 08:32:23ID:mEXXgo8Jと思って検索しようと思ったが堪えた
0469login:Penguin
2010/09/29(水) 18:41:46ID:jeMZvjSG0470466
2010/09/30(木) 03:18:19ID:oEA2zNJXありがとう。その方法でやってみる。
>>468
GtkBuilderは、以前のlibgladeにあたるもの。
それに、C++BuilderはMSじゃないぞ。
>>469
もちろん、Glade使ってXMLを作成してるよ。
それを読み込むのがGtkBuilder。
0471login:Penguin
2010/10/03(日) 23:46:11ID:y5C9HzxD簡単なものでいいのですが
0472login:Penguin
2010/10/04(月) 11:18:38ID:9wJE7nSNhttp://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
でゲーム開始だ
0473login:Penguin
2010/10/07(木) 23:33:21ID:bzqpJyzyPython使ったら楽かな
0474login:Penguin
2010/10/07(木) 23:58:28ID:wQWwIsB3余程のものじゃない限り、性能的に問題とはならないと思うから、スクリプトは便利だよ。
まぁ、俺は ruby なんだけど。。。
0475login:Penguin
2010/10/08(金) 13:40:09ID:BvF1QbPRPython + gtk で開発されているよ。
0476login:Penguin
2010/10/08(金) 13:41:57ID:yKf5ENPb( ゚∀゚)人(゚∀゚ )ナカーマ
0477login:Penguin
2010/10/08(金) 22:26:59ID:ncsyc+ZE0478login:Penguin
2010/10/08(金) 22:51:53ID:lqYDv+Jp0479login:Penguin
2010/10/08(金) 22:53:13ID:vwfmsqfo0480login:Penguin
2010/10/08(金) 23:25:32ID:RoG/rFqo「CだろJK」
ぱねぇっす! やっぱハッカーのひとはぱねぇっす!!
0481474
2010/10/08(金) 23:53:29ID:YC1HKIpZどの言語がいいか何て、自分にどの言語が合ってるか次第なんじゃないの?
0482login:Penguin
2010/10/09(土) 00:01:38ID:BvF1QbPRC/C++ 以外では、
gtkが公式にサポートしているのがPython
Gnomeの公式アプリに使われているのがPython
UbuntuやFedoraでデフォルトでインストールされているのがPython
Anjuta等GTK系開発ツールのサポートが一番充実しているのがPython
0483474
2010/10/09(土) 00:20:06ID:HCJJF52Gおぉ、Python は gtk で公式にサポートされてるんだ。
それは、いいねぇ。
ruby も入れてくれんかな。
0484login:Penguin
2010/10/09(土) 04:01:15ID:mDHE/CAa忠誠を誓ってるGoogle様が使ってるから、好きなふりをしてるだけか?
そうはいっても本当はPerlが大好きなんだろ?
0485login:Penguin
2010/10/09(土) 06:24:12ID:Xt3OjFd+0486login:Penguin
2010/10/09(土) 13:25:25ID:JGqpR3KWPythonは30分チュートリアルを読むだけで他人の書いたコードでもスラスラ読めることが多い。
0487login:Penguin
2010/10/09(土) 13:39:33ID:3AdxyjT60488login:Penguin
2010/10/09(土) 13:59:17ID: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::::::{ |
0489login:Penguin
2010/10/10(日) 18:30:46ID:Sp+agnVp0490login:Penguin
2010/10/11(月) 18:54:49ID:VGide9Wk0491login:Penguin
2010/10/19(火) 16:15:51ID:EWnEpHL/0492login:Penguin
2010/10/19(火) 17:17:34ID:2NWEe5/4pythonは、VBAほど腐ってはいないぞ
ところでVBAの近代化って進んでいるのか?
Access VBA甘グラマ供の再利用は由々しき問題ぜよ
0493login:Penguin
2010/10/19(火) 19:29:33ID:mjCBYhC00494login:Penguin
2010/10/19(火) 19:47:43ID:/Nj/keXZどう考えてもGTKが悪いのではなく糞マックが悪いと思うんだが。
0495login:Penguin
2010/10/19(火) 19:49:07ID:Ux5sdFhe0496login:Penguin
2010/10/19(火) 20:39:28ID:2NWEe5/4そうなの?
ttp://www.microsoft.com/japan/msdn/vba/
なんて2003年でとまってんだけど、更新が。
0497login:Penguin
2010/10/19(火) 21:38:06ID:mjCBYhC0[HOWTO] Microsoft Office で Visual Basic for Applications から Visual Basic .NET クラス ライブラリを呼び出す方法
http://support.microsoft.com/kb/317535/ja
こういう事が出来るらしい。
けど一般的じゃないっぽいね。
まぁ互換性失われるし一般的にはならないように感じられるな…
0498login:Penguin
2010/10/20(水) 16:42:06ID:dibJXxntGTK+がマルチプラットフォームになるように吸収するんだろ?
だったら、Macは悪くない。
かと云って、「GTK+が悪い」と云うのはおこがましい。
文句云っていいのは、それ相当のものを作れる人だけだ。
0499login:Penguin
2010/10/20(水) 16:59:50ID:nkUeeiMO「同じようなモノをつくれるひとでなければ批評してはいけない」というのなら
・linuxの○○の部分が悪いといっていいのはOS開発者だけ
・ゲームの○○が面白くないといっていいのはゲーム開発者だけ
・携帯電話の○○が使いづらいといっていいのは端末開発者だけ
・新作映画のストーリーラインを批判していいのは映画監督だけ
そういうのって言論封殺っていわない? オープンソース風土とはだいぶ違う文化じゃない?
0500login:Penguin
2010/10/20(水) 17:17:25ID:xVoAed/u0501login:Penguin
2010/10/20(水) 21:35:34ID:9tE6IJS+0502login:Penguin
2010/10/22(金) 10:57:35ID:i0oNjkXQMacOSXみたいに日本語入力ができないとか絶望的ってほどではないが。
0503login:Penguin
2010/10/22(金) 11:53:18ID:r2m3k6+H今日からPython勉強してGUIなアプリを作ってみようと思っていたのだが・・。
Qtのほうがいいのかな。でも、GNOME使ってるしGtkがいいんだよな
0504login:Penguin
2010/10/22(金) 22:39:01ID:T3dIa7ziwxGlade
http://wxglade.sourceforge.net/
はどうかな?
0505login:Penguin
2010/10/24(日) 07:46:05ID:Vhl0qsDm開発体制の問題だろうね。
0506login:Penguin
2010/10/24(日) 22:57:17ID:uho4GCjVそれに日本語(2バイト文字)関連はGtkよりQtのが酷いしマシな方
0507login:Penguin
2010/10/26(火) 18:03:28ID:XGIO2f11現状はカラムの幅を超えた部分は消えてしまいます。自分で改行を入れた場合は次の行に表示されるので折り返しも出来そうな気はするのですが。
0508login:Penguin
2010/10/26(火) 18:05:34ID:O6NRu0pw0509login:Penguin
2010/10/26(火) 18:32:48ID:XGIO2f11ありがとうございます!
0510login:Penguin
2010/11/02(火) 19:29:02ID:0mcR1TdEあるいはTreeViewにGtkEditableを格納するようなことができればそれでもよいのですが。
0511login:Penguin
2010/11/02(火) 19:41:27ID:RVdg5wgRpango markupで対応するんじゃね?
0512login:Penguin
2010/11/04(木) 13:45:22ID:xBpDemuDg_object_set (renderer, "markup","ab<b>cd</b>e", NULL);
とかでできました。ありがとう!
0513login:Penguin
2010/11/07(日) 14:39:48ID:qFCSAFkGこれって、日本語に訳すとどういう単語が適切なのかな?
iteratorで「反復子、繰り返しの概念」って出てきて、いまいち意味がつかめず
iterって出てくると、まったくもって意味がわからん。
ググっても、熱核融合炉とか出てくるし…
0514login:Penguin
2010/11/07(日) 14:43:10ID:Um+oFuZbループの抽象化
■ このスレッドは過去ログ倉庫に格納されています