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/
0359login:Penguin
2009/11/27(金) 21:30:47ID:RzRcFxleとりあえず、なんだ、おめでとう
0360login:Penguin
2009/11/27(金) 21:51:12ID:HBGtWPJy0361login:Penguin
2009/11/29(日) 00:46:08ID:guffPLRYさぁ早くシグナルをコネクトしまくる作業に戻るんだ
0362login:Penguin
2009/12/01(火) 22:14:30ID:sy3qzyYBぬるぽっ!
0363login:Penguin
2009/12/01(火) 22:23:34ID:xoJE4V4Aガッ
って言ってほしいのね。
もぉ、寂しがり屋さんなんだからぁ。
0364login:Penguin
2009/12/05(土) 20:49:17ID:CO55p0ewプログラマー不在のスレなの?
0365login:Penguin
2009/12/05(土) 21:08:39ID:Gmpm8vF/そう思うならまず率先して何かを作って公開してみては如何でしょうか?
0366login:Penguin
2009/12/06(日) 00:50:56ID:fNpRY7Ok0367login:Penguin
2009/12/07(月) 17:19:37ID:CENTWTgC0368login:Penguin
2009/12/07(月) 20:01:28ID:LkAo4E7O0369login:Penguin
2009/12/13(日) 11:19:39ID:naHBDIjP左3/4が描画領域で残りに現在時刻や表示倍率の設定がある。
連続してデータ受信すると、時刻表示のタイマーがとまったり、倍率設定
のコンボボックスが操作できなくなるので、スレッド分けしようと思うのだけど
expose_eventを別スレッドにすることって可能?
0370login:Penguin
2009/12/13(日) 11:42:32ID:P93DdDFaとりあえずやってみたら?
0371login:Penguin
2009/12/16(水) 20:46:38ID:laS/Dg3j作る気になれるようなことが必要なのではないですか。
0372login:Penguin
2009/12/16(水) 20:51:22ID:dPFj9y5Eすごいですね
勉強のためにぜひソースを見せて頂けないでしょうか?
0373login:Penguin
2009/12/16(水) 20:53:19ID:dPFj9y5Eご存知でしたら教えてください。
0374login:Penguin
2009/12/16(水) 20:54:06ID:6soPE05o(´・ω・) いやどす
ハ∨/^ヽ
ノ::[三ノ :.、
i)、_;|*く; ノ
|!: ::.".T~
ハ、___|
"""~""""""~"""~"""~"
0375login:Penguin
2009/12/16(水) 21:47:42ID:c63j0iz90376login:Penguin
2009/12/16(水) 22:44:30ID:Q8cS+VLW0377login:Penguin
2009/12/16(水) 23:39:53ID:jaaomSx0さすがLinux。
0378login:Penguin
2009/12/17(木) 02:29:15ID:F8Jdsro20379login:Penguin
2009/12/26(土) 01:54:27ID:XiSC9KS7・入門GTK+
・Foundations of GTK+ Development
プログラミングはCの基礎がわかっている程度です。
PHPもやってます。
0380login:Penguin
2009/12/26(土) 13:18:25ID:6MLS1ve1あと、入門GTK+の方は作者がホームページで
本の内容を公開し始めてる
0381login:Penguin
2009/12/26(土) 14:29:39ID:YM2nDrzN0382379
2009/12/27(日) 00:54:04ID:HfaPMpb7両方買うと、結局一冊は読まないままになったりするタイプなので…。
あと、書籍代はケチるべきじゃないと思いますが、深刻な金欠状態なのです。
入門GTK+の作者サイトでの公開について、情報ありがとうございます。
休暇中に目を通してみようと思います。
>>381
Amazon USのレビューで「ネット上で読める」と書いてあったので、どこにあるのか気になってました。
書店になくて立ち読みできなかったので、Google Booksで読んで判断します。
どうもありがとうございました。
0383login:Penguin
2009/12/27(日) 08:12:49ID:Ri5kV8GMそれ読めばとりあえずリファレンスとサンプル眺めつつ使えるようになる。
それでも本が欲しくなるならあるウィジェットの使い方を
詳しく書いていて欲しいだとかマルチスレッドとの兼ね合いが
知りたいだとか(あまりいい例が出てこなくてすまん)
求めるものがはっきりしてくると思うので、
それから本を選んでもいいんじゃないだろうか。
0384379
2009/12/27(日) 20:27:25ID:HfaPMpb7公式チュートリアルのことを知りませんでした…。
ダウンロードできたので、スマートフォン等にコピーして移動中でも読めそうです!
プリントアウトして持ち歩くのもいいかもしれません。
最終更新日が2002年10月27日と古いんですけど、問題ないですよね?
書籍を買ったほうが最後まで読みつづけようという意欲が持てる気がしますが、
とりあえず公式チュートリアルを読もうと思います。
ちなみに「Foundations of GTK+ Development」はGoogle Booksで見てみたら
とても良さそうでした。
「入門GTK+」のほうは著者ページで見つからなかったです・・。
0385login:Penguin
2009/12/28(月) 02:58:56ID:CtQUEG8Y……?
公式チュートリアルは
http://www.gtk.org/documentation.html でズバリ The Official Tutorial といってる
http://library.gnome.org/devel/gtk-tutorial/stable/
だよ。
GTK+のソースコードのtarball中にも入ってる(docs/tutorial/以下)。
0386login:Penguin
2009/12/28(月) 07:38:54ID:RlHoBGgoTutorial Availabilityのページにあるリンク(ftp://ftp.gtk.org/pub/gtk/tutorial)から
ダウンロードしました。
0387login:Penguin
2009/12/28(月) 11:47:38ID:T0tfWrHc0388login:Penguin
2009/12/28(月) 22:21:50ID:Uh78zlUy0389login:Penguin
2009/12/28(月) 22:55:34ID:AK9LsQvN0390login:Penguin
2010/01/09(土) 18:48:59ID:khh4I0eb今までwindowsのvisual stdioしか使ったことなかったから、パスさえ通ってりゃ
#g++ hello.cpp
だけでコンパイルをやってくれると思っていた
今日一日かかって`pkg-config --cflags --libs gtk+-2.0`を知って
ウィンドウを出せた
疲れた
0391login:Penguin
2010/01/10(日) 13:16:43ID:3oa4ldyNビルドすらままならないだろうに、何言ってんだコイツ
ましてやコマンドラインからCL.exe呼び出すんなら、vcvarsall.batなり
vcvarsall.batで設定される環境変数群を、予めユーザー環境変数に定義して
おかなければCL.exeもg++と同じエラー吐いて止まるだろうに・・・
0392login:Penguin
2010/01/10(日) 14:58:37ID:zlmG+3hJその上に画像と文字を描画してて、文字は白
これに対してニコ動のコメント表示/非表示みたいなことをやりたい
文字を描画するときのみXORモードで書いてるんだけど
背景の黒の上に書かれた物は消えるけど、画像の上に書かれた
物は黒抜き去れて残ってしまう
説明わかりにくいかも知れないけど、なんか良い方法無いかな
0393login:Penguin
2010/01/13(水) 03:10:04ID:hKXsU3qa0394login:Penguin
2010/01/13(水) 13:45:44ID:rT8A3kXeチュートリアルとか見てないの?
0395login:Penguin
2010/01/14(木) 01:41:29ID:2htHqmwQ0396login:Penguin
2010/01/15(金) 10:31:57ID:2tKD4R7lgimp以外だとどんなものがありますか?
ソースリストを読んで勉強したいのですが
0397login:Penguin
2010/01/15(金) 11:34:43ID:+6ILVUJ5http://ja.wikipedia.org/wiki/GTK%2B#GTK.2B2.E3.82.92.E5.88.A9.E7.94.A8.E3.81.97.E3.81.9F.E3.82.BD.E3.83.95.E3.83.88.E3.82.A6.E3.82.A7.E3.82.A2
http://www.gtk.org/screenshots.html
0398login:Penguin
2010/01/16(土) 13:06:47ID:st13uJnk0399login:Penguin
2010/01/23(土) 07:49:03ID:c81zxfOz0400login:Penguin
2010/01/26(火) 09:24:59ID:WUy9SOAfウィンドウ関連のところで、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 はインストール済みか最新バージョンです
何もしません
とでます。
...よろしくお願いします。
0401login:Penguin
2010/01/26(火) 11:26:21ID:TXiGdVqugtk2, gtk2-develを入れて
gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0`
0402login:Penguin
2010/01/26(火) 16:11:56ID:R1nywYDP遅くなりましてすいません。返信ありがとうございます。
うまくいきました。
ウィンドウが表示されたとき、感動しました。
でも、emacs からはコンパイルできませんでしたので、リンカーあたりの
設定かな?と思っています。
何はともあれ、ありがとうございました。
0403login:Penguin
2010/01/26(火) 16:57:00ID:R1nywYDPlinuxにおいて、
windowsの
SetCursorPos()
GetCursorPos() に相当するものはありますか?
参考リファレンスなど紹介してもらえれば助かります。
0404login:Penguin
2010/01/26(火) 17:26:41ID:Up0ueX3pttp://library.gnome.org/devel/gtk-tutorial/stable/
0405login:Penguin
2010/01/26(火) 18:04:33ID:R1nywYDP返信ありがとうございます。
...勉強します。
0406login:Penguin
2010/01/26(火) 18:11:45ID:OKgnAGh0pkg-configコマンドが何なのか調べるんだ。
0407login:Penguin
2010/01/28(木) 14:40:04ID:YXchBGq5困っていることがあります。
gtk_init()でハングするんです。
1. gtk_init()を手動でコール出来るようプログラミングし、rc.localでそのプログラムを起動。
2. xwindow(gnome)ログイン後にgtk_init()をコールさせる。
上記の2の時点でgtk_init()でハングしているらしいです。
(gtk_init()下行のログが出力されない)
原因や対処法をご存知の方いらっしゃいませんか?
0408login:Penguin
2010/01/28(木) 18:04:22ID:VFHNmy96突っ込みどころが3点ほど。
・rc.localに登録して起動し、さらにログインした後にも起動・・・?
・gtk_init()だけ実行するプログラムを作ったの?
だとしたら壮大な勘違いをしている。gtk_init()関数が何をする関数なのか調べるんだ。
・「ログ」とは何のログ?ハングしているらしい、では分からないのでソースをUPするんだ。
0409login:Penguin
2010/01/28(木) 18:34:10ID:YXchBGq5ありがとうございます。すみません、説明不足でした。
ちょっとソースは長いので文書のみで失礼します。
プログラムは、rc.localで起動した時点ではgtk_init()をコールしない作りにしてます。
その後、ログイン後にコンソールから別プログラムを通してプロセス間通信によりコマンドを送信、
そしてコマンドを受信した時点で gtk_init()をコールさせる形にしてました。
ログは、
printf("call gtk_init\n");
gtk_init();
printf("call end\n"); ★
のようにして、★が出力されない感じです。
その後の調査で、どうやら rc.local起動させた場合、環境変数 DISPLAYなどが
全く設定されていないようです。
そこら辺に問題有りかと思っているのですが、なにぶん、勉強不足でして。
時間も無いので質問させて貰った次第です。
0410login:Penguin
2010/01/28(木) 18:40:22ID:A3FmJC2Oプログラム分けるんじゃ駄目なんかい
0411login:Penguin
2010/01/28(木) 18:44:27ID:0EFvnz24時間も無いので
時間も無いので
時間も無いので
時間も無いので
0412login:Penguin
2010/01/28(木) 19:24:50ID:bFXQct0B「GTK初心者」と言うよりLinux&プログラミング初心者のようですね。
貴方にGTKはまだ早いです。環境変数やXの基本が理解できていないと
説明されても分からないと思いますので出直してきて下さい。
0413login:Penguin
2010/01/28(木) 19:30:37ID:uG/wS28iお金も無いよ
お金も無いよ
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:PbDDQq9y■ このスレッドは過去ログ倉庫に格納されています