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


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

GTK+プログラミング



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

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

-関連サイト-

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

401 名前:login:Penguin mailto:sage [2010/01/26(火) 11:26:21 ID:TXiGdVqu]
チュートリアルどおりやれば躓かないとおもうんだけどな
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() に相当するものはありますか?
参考リファレンスなど紹介してもらえれば助かります。

404 名前:login:Penguin mailto:sage [2010/01/26(火) 17:26:41 ID:Up0ueX3p]
>>403
ttp://library.gnome.org/devel/gtk-tutorial/stable/

405 名前:login:Penguin [2010/01/26(火) 18:04:33 ID:R1nywYDP]
>>404
 返信ありがとうございます。
...勉強します。

406 名前:login:Penguin mailto:sage [2010/01/26(火) 18:11:45 ID:OKgnAGh0]
>>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()下行のログが出力されない)

原因や対処法をご存知の方いらっしゃいませんか?


408 名前:login:Penguin mailto:sage [2010/01/28(木) 18:04:22 ID:VFHNmy96]
>>407
突っ込みどころが3点ほど。

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

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

・「ログ」とは何のログ?ハングしているらしい、では分からないのでソースをUPするんだ。


409 名前:login:Penguin mailto:sage [2010/01/28(木) 18:34:10 ID:YXchBGq5]
>>408
ありがとうございます。すみません、説明不足でした。

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

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

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

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

そこら辺に問題有りかと思っているのですが、なにぶん、勉強不足でして。
時間も無いので質問させて貰った次第です。




410 名前:login:Penguin mailto:sage [2010/01/28(木) 18:40:22 ID:A3FmJC2O]
DISPLAYも何も、Xの起動はrc.localより後なんだぜ?
プログラム分けるんじゃ駄目なんかい

411 名前:login:Penguin mailto:sage [2010/01/28(木) 18:44:27 ID:0EFvnz24]
時間も無いので
時間も無いので
時間も無いので
時間も無いので
時間も無いので


412 名前:login:Penguin mailto:sage [2010/01/28(木) 19:24:50 ID:bFXQct0B]
>>409
「GTK初心者」と言うよりLinux&プログラミング初心者のようですね。

貴方にGTKはまだ早いです。環境変数やXの基本が理解できていないと
説明されても分からないと思いますので出直してきて下さい。

413 名前:login:Penguin mailto:sage [2010/01/28(木) 19:30:37 ID:uG/wS28i]
お金も無いよ
お金も無いよ
お金も無いよ

414 名前:login:Penguin mailto:sage [2010/01/28(木) 19:32:04 ID:YXchBGq5]
>>410
ありがとうございます。
inittabで初期化レベルを分けていることもあり、
てっきりrc.local前に起動処理が走っているかと勘違いしていました。
お恥ずかしい。

>>412
おっしゃるとおりです。
出直してきます。


415 名前:login:Penguin mailto:sage [2010/01/28(木) 21:55:00 ID:WU2RMXov]
>>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の値でエラーが出るようです。関係する記述を確認しましたが問題ありません…


417 名前:login:Penguin mailto:sage [2010/02/07(日) 17:08:07 ID:KhA+E7Mu]
エラーメッセージを読んでみましょう
acitonsが宣言されていませんよ
actionsと間違えていませんか?

418 名前:login:Penguin [2010/02/07(日) 17:18:05 ID:jjKybwb6]
>417さん
ごめんなさい、本当に気づきませんでした。エラー文を読んでいたのに…ありがとうございました

419 名前:login:Penguin mailto:sage [2010/02/09(火) 01:35:25 ID:gRID6Pu9]
ググれ秀才



420 名前:login:Penguin mailto:sage [2010/02/10(水) 20:29:31 ID:y7MwWf/g]
gtkmmをこれからやってみようと思ってるけど、
入門GTK+を読みながらC言語で練習するより
最初からgtkmmでC++使ったほうがいい?

gtkmmの入門書がないみたいなので、
取っかかりとして入門GTK+を候補にしてるんだけど…。

421 名前:login:Penguin mailto:sage [2010/02/11(木) 13:48:24 ID:AIMyey0J]
>>420
最終的にC++で書くのが目的なら、↓みたいなところがあるからC++で書けばいいんじゃない。
gtkまわりの日本語の情報が少ないから、言語は違うけどたまに参考にさせてもらってるよ。
book.geocities.jp/gtkmm_ja/docs/tutorial/html/index.html


422 名前:login:Penguin mailto:sage [2010/02/12(金) 15:44:26 ID:DJstgHYM]
>>421
そのサイト見てみます。
ありがとう。

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割は、
前記のとりあえずリビルドです。

424 名前:login:Penguin mailto:sage [2010/02/17(水) 19:42:41 ID:TkV44uU+]
1.2のランタイムぐらい入っててもいんでない?

425 名前:login:Penguin mailto:sage [2010/02/21(日) 14:06:19 ID:pTXZtDIq]
ちょっと自前で描画しようとすると、gdkとcairoが混在していて
煩雑としてるなぁ。
少なくともGDKの描画関連のAPIはもういらないだろう。
3.0辺りでばっさり消すとかしてもいいんじゃないか。

426 名前:login:Penguin mailto:sage [2010/03/11(木) 00:46:30 ID:Vm2wsjJM]
GTK(+glade)を使ったあるプログラムを
・HP-UXサーバ
・RedHat Linuxサーバ
でそれぞれコンパイルおよび動作させ、
別のLinux端末に表示させたところ、
表示や動作自体は問題無いんだけども、
エディットボックスへの入力で
RedHat Linuxの方は日本語入力を受け付けてくれません。
ちなみに、それぞれに入っているGTKはともに1.2です。
SCIMとかの環境は、一見同じっぽいですが・・・・
どこか見るべき箇所はあるでしょうか?

ちなみに、glade自体も
HP-UXは日本語入力を受け付けてLinuxサーバの方は
日本語入力を受け付けてくれません。
gladeの問題なんですかねぇ・・・?

427 名前:login:Penguin [2010/03/12(金) 16:52:20 ID:sdgtdQtC]
Gtk::Dialogの派生クラスを作成してある条件の時表示させています。
表示後一定期間経過したら自動的にそのダイアログを閉じたいのですが、
どうすればいいのでしょうか。
特にダイアログにこだわっているわけではありません。
何かメッセージを表示 -> 一定時間後に自動的に消去
が実現できればいいです。
よろしくお願いします。

428 名前:login:Penguin mailto:sage [2010/03/12(金) 19:39:46 ID:37m6gC+E]
>>427
g_timeout_add関数ではだめでしょうか?

429 名前:login:Penguin mailto:sage [2010/03/12(金) 19:41:48 ID:WSSuZVVD]
>>428
そこはらめぇーーーー



430 名前:login:Penguin mailto:sage [2010/03/16(火) 23:40:15 ID:u16nCOLZ]
gtk_widget_drawを呼ぶとたまにアプリが落ちる
調べたらgtk2では非推奨になってた
かわりにgdk_window_invalidate_rect使えって書いてあったから
それ使うようにしたら、exposeイベントハンドラに入ったり入らなかったりするようになった



431 名前:login:Penguin mailto:sage [2010/03/19(金) 03:10:05 ID:pTXFbkuH]
Xawで作られたソフトのWidgetをGnomeテーマのスキンっぽく
変える方法ってありますか?Xaw3dみたいな

432 名前:login:Penguin mailto:sage [2010/03/22(月) 18:34:33 ID:gITq0f63]
>>427
作ってみた。たぶん、427はここを見てないだろうけど
#include <gtk/gtk.h>

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

return FALSE;
};

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

gtk_init (&argc, &argv);

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

gtk_dialog_run(GTK_DIALOG(dialog));

g_source_remove(tag);

return 0;
}

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

Windowに表示する部分は、gtk_main()を呼ぶ前に、g_timeout_add(1000, draw, NULL)
のようにしてタイムアウト関数を使えばいいとして、データファイルを読み込んで
処理する部分は、どこに書けばいいのでしょうか?
スレッドとかを使わずにやりたいのですが。

434 名前:login:Penguin mailto:sage [2010/05/01(土) 18:51:28 ID:lTmE6Ym2]
g_io_add_watchとか?

435 名前:login:Penguin [2010/05/01(土) 21:52:51 ID:5eA3cNHe]
LinuxでGTK+やってる人はWindowsでも主にGTK+で書いてる?
WindowsのAPIは使いませんって人いるのかな。

436 名前:login:Penguin mailto:sage [2010/05/02(日) 00:32:37 ID:Bdebw0Wa]
そもそもWindows使いません。

437 名前:login:Penguin [2010/05/02(日) 06:00:37 ID:J+HCMgwe]
>>433
スレッドを使わない方がめんどくさいと思うんだけどね。
ずーっと処理し続けて一秒に一回描画するって事だと
その処理の間は入力受け付け無くてもOK?
その為のスレッドなんだけどなぁ。

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

それでもスレッドを使いたくないというなら、こまめにシグナル飛ばしっこ
するしかないと思う。


438 名前:login:Penguin mailto:sage [2010/05/02(日) 21:48:38 ID:uNQYZGNa]
簡単なシミュレーション用のGUIラッパ作りたんですが、
Qt4とgtkmmどっちが作るの楽ですか?
どっちもバグてんこ盛りそうで、javaやM$畑に生まれたかった

439 名前:login:Penguin mailto:sage [2010/05/02(日) 22:14:42 ID:WSA7U0rv]
>>438
マジでバグテンコ盛りだからいまからでも上にJava+Swingあたりでやらせてくれって掛け合ったほうがいい。
ちゃんと上にQtもGTK+もバグテンコ盛り過ぎてプロダクションレベルに使えないって直訴するんだぞ。



440 名前:login:Penguin mailto:sage [2010/05/04(火) 08:25:25 ID:i62yYai1]
>>438
vala とかどうか。バグが多いかどうかはプラットフォームに
よる部分も多いと感じるが…win ならC#で組むのが楽だとは思う。

441 名前:login:Penguin [2010/05/04(火) 09:52:32 ID:gZYcN+Ue]
>> 439
使いこなせていないだけじゃないの。

442 名前:login:Penguin mailto:sage [2010/05/04(火) 21:20:07 ID:C0XJN+7X]
なんでこのスレ、ム板じゃないの?
SDLとかはちゃんとム板でやってるのに
なんでGTKはのけ者なの?
いじめに合うの?

443 名前:login:Penguin [2010/05/04(火) 21:28:25 ID:9ORU/lJS]
Gtkプログラミング on Windows!!!
ってスレがム板にあるけど?
pc12.2ch.net/test/read.cgi/tech/1147024203/

444 名前:login:Penguin mailto:sage [2010/05/04(火) 21:36:12 ID:C0XJN+7X]
窓専用じゃん。

445 名前:login:Penguin [2010/05/04(火) 21:47:13 ID:9ORU/lJS]
自分で立てればいいぢやん

446 名前:login:Penguin mailto:sage [2010/05/05(水) 17:49:24 ID:NLGDqQjm]
まぁええやんここにも有っても
どうせ両方見てるし






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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