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


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

GTK プログラミング!!



1 名前:login:Penguin [2001/07/22(日) 22:31]
俺の様な厨房プログラマーをある程度使えるようにまで育成して、和製糞ソフトを
大量量産するのが目的のスレッドです。
とりあえずGNOMEプログラミング(小学館)を買ってきました。
これから読んでみます。

266 名前:login:Penguin mailto:sage [03/10/13 21:24 ID:8ZoDmGS+]
>>263
理由は?

267 名前:login:Penguin [03/10/14 23:23 ID:6azmQS+6]
初心者です。
GTKでxpmを表示することができたのですが、
xpmデータの上に、さらにxpmデータを好きな位置に
描画することってできますか?
すいません、教えて下さい。

268 名前:login:Penguin mailto:sage [03/10/15 00:58 ID:FhH2bw4j]
>>267
gdk_pixbuf_new_from_file で、ファイルからGdkPixbufをそれぞれ取得
gdk_pixbuf_render_to_drawable で、GdkPixbufをGdkDrawableに重ねうち
GdkDrawable(pixmap)はgdk_pixmap_newで作成しておく...(1)
(1)で作成したpixmapをgtk_drawing_area_newで取得したwidget->windowに
exposeシグナル発生のつど転送(gdk_draw_drawable)

で、いけると思う。

GdkまわりはXの知識がないと難しいかも

269 名前:267 [03/10/18 01:50 ID:+faUZTm8]
>>268
ありがとうございます

270 名前:login:Penguin [03/10/24 19:11 ID:FhYActk9]
age

271 名前:login:Penguin [03/10/26 16:31 ID:khx8YbTs]
GTK1.2+のいろいろなホームページを見たのですが、
理解できないので教えて頂けないでしょうか。
xmp、テキストなどにウィジェットにフォーカスって当てることできますでしょうか?
できるようでしたらどのような方法でしたら良いか教えて下さい。


272 名前:login:Penguin [03/10/26 17:21 ID:XFblFRSC]
gtk_container_set_focus_childとか?

273 名前:login:Penguin mailto:sage [03/10/26 18:43 ID:Cf18t0yU]
>>271

イベントボックスの中にGtkLabelとか入れればできる。
FAQだから、ぐぐれ。

274 名前:login:Penguin [03/10/28 00:46 ID:n92YYpRn]
>>272
>>273

271です。
レス頂いてすいません。
チャレンジしてみます。



275 名前:login:Penguin [03/10/31 18:42 ID:IOboVxUJ]
gtk+ではじめるXプログラミングなる本を読みながら、Gtkに入門してみました。

今、テキストエディタらしきものを作ってみようと思っています。
テキストウィジェットの横幅を半角80文字固定にしたいのですが、方法が
わかりません。

また、半角80文字目で自動的に\nを挿入する方法も出来れば教えて下さい。

276 名前:login:Penguin mailto:sage [03/10/31 19:00 ID:XMwowiCK]
>>275
glade で雛形を作って、生成されたソースコードを読む手もあるなぁ

277 名前:login:Penguin mailto:sage [03/11/01 06:11 ID:hDKdsiea]
>>275
gdk で文字幅もらってそこからウィンドウサイズを決めるとか。

gtk つかうなら 2.* の方がよくないかい? text ウィジット
も textview にかわってるようだし。

278 名前:login:Penguin [03/11/05 01:14 ID:a2IzLU73]
ge

279 名前:login:Penguin [03/11/10 23:36 ID:SWl6gM2L]
AGE

280 名前:login:Penguin [03/11/16 02:05 ID:RQO5eIp4]
すみません。
直接Gtkと関係ないのかもしれませんが、Gnome標準アイコン(CD-ROM)等を
表示させるにはどうすればよいのでしょうか?

Gladeの吐き出したソースを元に、以下のプログラムを作成してみましたが、ダメでした。

なお、事情によりGTK1.2でプログラミングを行っています。よろしくお願いします。

#include <gtk/gtk.h>

int main(int argc,char *argv[])
{
GtkWidget *window1;
GtkWidget *image1;

gtk_init(&argc,&argv);

window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window1), ("window1"));

image1 = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_widget_show (image1);
gtk_container_add (GTK_CONTAINER (window1), image1);

gtk_main();

return 0;
}

281 名前:login:Penguin mailto:sage [03/11/16 09:25 ID:rEMWU24N]
gtk_widget_show (window1);
いれれ

282 名前:243 mailto:sage [03/11/16 10:13 ID:ttZTK75X]
>>280
1.2には gtk_image_new_from_stock() ないと思うんですけど。

#include <gnome.h> 入れて、あとは
developer.gnome.org/doc/API/libgnomeui/gnomestock.html
を見て適当にどうぞ。

283 名前:login:Penguin [03/11/16 12:50 ID:blYqkdPM]
GTK+ FAQ 2003-11-05版 日本語訳
www.gnome.gr.jp/docs/gtk+faq.20031105.html

284 名前:280 [03/11/16 13:24 ID:RQO5eIp4]
>>281-283

さんきす!

ちょっと今日は時間がないので、明日辺り再チャレンジしてみます!



285 名前:280 [03/11/17 18:26 ID:YrxAFWBK]
#include <gnome.h>

すると、ヘッダファイルが見つからないとエラーが出てしまいます。
これは、Gtkの時同様にコンパイルオプションが必要に違いない!

と思って、ググって見ました。それを参考に

$gcc -c -main.c `gtk-config --cflags` `gtk-config --libs` `gnome-config --cflags --libs gnomeui`

として、コンパイルしてみたのですが
gcc: -lgtk: リンクが完了しなかったのでリンカの入力ファイルは使われませんでした
等のエラーが出てしまいコンパイルできません。


ちょっと、Gtkからお話ずれてしまいますがどの様にコンパイルすればいいのでしょうか?
なお、gnome-config --cflags --libs gnomeuiを直接実行するところちゃんと
値が帰ってきました。


286 名前:login:Penguin mailto:sage [03/11/17 18:34 ID:aBzY07iI]
>>285
-cはコンパイルするだけ。

287 名前:login:Penguin mailto:sage [03/11/17 21:41 ID:pT6iG3D7]
>>285
gtk-config --foo …はいらない。 gnome-configだけで十分。
ていうか「ちょっと」って、コンパイラオプションの基本中の基本すら
他人に解説させて、「だいぶ」話がずれてるよ…。

www.gnome.gr.jp/docs/gnome-libs-tutorial/building-gnome-apps.html
参照。

288 名前:login:Penguin [03/11/18 22:39 ID:/SRrudRK]
いきなり質問から入ってすみません。
今、GTKを使っているのですが、リストボックスにスクロールバーをつける方法
がわかりません。私が買った本やサイトなどをみてもテキストにスクロールバーを
つける方法しかありません。
hscroll=gtk_hscrollbar_new(GTK_TEXT(text)->hadj);
この(GTK_TEXT(text)をGTK_LIST(listbox)変えればいいなんて安直にやってみた
のですが当然のごとくstructure has nomember named 'hadj'といわれました。
リストボックスには別のメンバが用意されているのですか?それとも根本的にに間
違っているのでしょうか?どなたかご教授おねがいします><

289 名前:login:Penguin mailto:sage [03/11/19 00:59 ID:Wqf4YGJk]
GtkScrollbar 使わずに GtkScrolledWindow 使う。


290 名前:login:Penguin mailto:sage [03/11/19 04:20 ID:yn0Z9dim]
>>289
GtkScrolledWindowとctreeでやりたかったことができました!
listboxはGtkScrolledWindowでやってもエラー?が、、きっと何かまちがって
たんですね。。
ありがとうございました!


291 名前:280 [03/11/21 01:45 ID:S7n3MU64]
>>287

お世話になりました。ウィンドウをGtk Window型(?)からGNOME_APP型
に変更して、無事ツールバーを実装する事が出来ました。

Linuxのプログラミング自体が初めてで、基礎的な質問をしてすみませんでした(^^;

292 名前:login:Penguin [03/11/24 19:03 ID:ukNjiyv7]
GTK+ FAQ 2003-11-20版 日本語訳
www.gnome.gr.jp/docs/gtk+faq.20031120.html

293 名前:login:Penguin [03/11/25 04:09 ID:C+TQgfqW]
gtk_widget_show(dialog);
func();
gtk_widget_destroy(dialog);

として、func()を実行中は「実行中、、、」みたいなダイアログを表示させて
おきたいのですが、うまくいきません。


実際に動かしてみると、func()は処理されるのですがdialogが表示されません。
正しくは、どうするべきでしょうか?

294 名前:login:Penguin mailto:sage [03/11/30 22:37 ID:ufz1QKFT]
gtk2.xを勉強したいんだが
どっかいいサイトないかな?



295 名前:login:Penguin mailto:sage [03/11/30 23:04 ID:S9DI/WHa]
>>294
developer.gnome.org/doc/
www.gnome.gr.jp/docs/

296 名前:login:Penguin mailto:sage [03/11/30 23:22 ID:Qt3q37KD]
たった二つ上のレスぐらい見ろよ・・・


297 名前:login:Penguin mailto:sage [03/11/30 23:42 ID:tKo4rvDp]
>>293
func の後で gtk_main() で、
func の終了時に gtk_main_quit() をよぶ。


298 名前:login:Penguin mailto:sage [03/12/01 01:16 ID:2vS05X6T]
>>293の質問と似てるけれど、ソケット通信の待ち受けにwhile+selectを使おうと思いましたがどこに記述すればよいのかわかりません。
gtk_main()の上に書くと作ったwidgetが表示されず、下に書くとどうやらgtk_main_quit()が呼ばれたあとに実行されてしまいました。

299 名前:login:Penguin mailto:sage [03/12/01 01:23 ID:D/d2pGGk]
>>298
そりゃそうでしょう。gtk_main()ってメイン「ループ」だよ。
ここらへんが役に立てばいいのですけれど…。
www.gnome.gr.jp/docs/gtk+-1.2.x-refs/gtk/gtk-general.html#GTK-TIMEOUT-ADD

300 名前:298 mailto:sage [03/12/01 03:12 ID:2vS05X6T]
>>299さんのヒントでググって、
i = gtk_timeout_add (時間, (GtkFunction)関数, 引数) ;
gtk_main ();
gtk_timeout_remove(i) ;

てな具合にしたら動いたみたいです。どうもありがとうございました。

301 名前:login:Penguin mailto:sage [03/12/01 04:32 ID:rp3RKVAH]
>>300
gdk_input_addの方が良いと思うんだが、どうよ?

302 名前:gnomeユーザー [03/12/01 23:19 ID:kfK4dpcc]
このスレを呼んで、gnome.hを使うようになった者です。

設定ファイルの読み込みから、ツールバーの作成まで容易に出来る様に
なり、かなり重宝しています。

さて、そこで質問なのですがツールバーから呼び出されるコールバック関数に
引数を渡したい場合はどうすればよいですか?

static GnomeUIInfo toolbar[] = {
GNOMEUIINFO_ITEM_STOCK("メール送信","send mail.",
send_mail(*text),
GNOME_STOCK_PIXMAP_MAIL_SND),
GNOMEUIINFO_END
};

void send_mail(GtkWidget *text)
{
この関数で、テキストウィジェット*text内の文字列
を処理
}

int main(...){
...
GtkWidget *text;
...
}


知っていれば簡単な事の様な気もするのですが…。
宜しくお願いします。

303 名前:login:Penguin mailto:sage [03/12/01 23:47 ID:RoaPDgRi]
gnome_app_create_toolbar_with_data ()

304 名前:login:Penguin mailto:sage [03/12/01 23:48 ID:D/d2pGGk]
>>302
gnomerが増えてうれしい限りです。
こちらはもう見ましたか?
www.gnome.gr.jp/docs/gnome-libs-tutorial/



305 名前:login:Penguin mailto:sage [03/12/01 23:52 ID:D/d2pGGk]
>>301
む、自分はそれ知らなかったっす。
どんな風に良いんでしょう?

306 名前:gnomeユーザー [03/12/02 00:08 ID:V7ZgsjLM]
>>303,304

ありがとうございました。
with_data()
で試して見ます。

307 名前:gnomeユーザー [03/12/02 01:05 ID:V7ZgsjLM]
出来の悪い子でごめんなさい(つдT)
gnome_config_set()あたりはサンプルソースが載っていてわかりやすかったのですが・・・。

>>304のページを読んで見ましたが、わかりません。
「コールバック関数の data フィールドに引き渡される拡張パラメータを引数として呼び出して下さい。」

とあるので、
void test(GtkWidget *widget,gpointer data)
{/*textウィジェットの文字数を調べてみる*/
printf("length=%d\n",gtk_text_get_length(GTK_TEXT(data)));
}

static GnomeUIInfo toolbar[] = {
GNOMEUIINFO_ITEM_STOCK("てすと","test",
test,
GNOME_STOCK_PIXMAP_MAIL_SND),

GNOMEUIINFO_END
};

int main(int argc,char *argv[])
{
GtkWidget *window,*text;
gnome_app_create_toolbar_with_data (GNOME_APP (window), toolbar,text);
...
}

としましたが、うまく動いてくれません。なんか意味を取り違えて、勘違い
してるんだとは思うんですが。

308 名前:login:Penguin mailto:sage [03/12/02 03:33 ID:qj4or6iA]
>>301
ここですね。
www.kitanet.ne.jp/~asler/linux/gtk/ja/gtk_tut_ja-17.html
わたしがやりたいのはソケットの待ちうけなので、ソケットディスクリプタに反応があったときに関数を呼び出すgdk_input_addのほうが適してるみたいです。
まず参考にして組んでみます。ありがとうございました。

309 名前:gnomeユーザー [03/12/02 15:23 ID:V7ZgsjLM]
>>307

ちなみに
gnome_app_create_toolbar_with_data (GNOME_APP (window), toolbar,(gpointer)"test");

として、コールバックで呼び出すと"test"と表示する事が出来るのでWidgetの送り方がおかしいんだとは思うんですが…。

310 名前:login:Penguin mailto:sage [03/12/02 15:32 ID:Rv4Kirv7]
gnome のライブラリ使ったことないけど
printf("length=%d\n",gtk_text_get_length(GTK_TEXT((GtkWidget *)data)));
とか。

void test(GtkWidget *widget,gpointer data)
この widget って text じゃないのか?これまた、全く知らんのだが

311 名前:gnomeユーザー [03/12/03 20:30 ID:O3qA9IIV]
一緒に渡したい値がいくつかあったので、textもまとめて一つの構造体にして
構造体のポインタを渡すことにより、無事にtextの中身を処理できるようになりました。

ありがとうございました。

312 名前:gnomeユーザー [03/12/03 23:03 ID:O3qA9IIV]
たびたびすみません。

GTKは<varargs.h>と干渉してしまうのでしょうか?
正常に動作していたプログラムに、gtk/gtk.hをインクルードすると
プログラムが動作しなくなります。(インクルード文以外は一切変更なし)

>>va_start(args);
の部分で
マクロ "va_start" は引数を 2 要求しますが、1 個しか与えられていません
と、gccがエラーを吐き出してしまいます。該当行をコメントアウトすると
コンパイルはできますが、やはりセグメントエラーで実行できません。


何か解決策はないでしょうか?


313 名前:login:Penguin mailto:sage [03/12/03 23:19 ID:X38Jttep]
>>312
うーん、もうちょっとご自分で調べられないもんでしょか。

なぜにそんな古めかしいものを使うのでしょうか。
いにしえのANSI C(C89)から<stdarg.h>が推奨です。
そっちではva_startマクロの引数は二つです。

どのような理由があるか知りませんが、ANSI Cを前提に
書かれているGTKとそれ以前とのコードの組み合わせは、
無理が出ても仕方がないように思われます。

314 名前:gnomeユーザー [03/12/03 23:30 ID:O3qA9IIV]
ちなみに、ソースの概略はこんな感じです。

int pac(va_alist)
va_dcl
{
va_list args;
va_start(args);
}

int main(){
...
va(pac,"test\n")
...
}




315 名前:login:Penguin mailto:sage [03/12/04 00:09 ID:OqkJIjUR]
>>314
はあ?

316 名前:gnomeユーザー [03/12/04 01:48 ID:qZ2UE2k7]
すみません(^^;
とりあえず、自己解決しました。

古めかしいヘッダファイルだったんですね(^^;
varargs.h gtkでググったんですけど、有力な手がかりがなくて。

なぜこのヘッダファイルなのかといいますと、参考文献に載っている
ルーチンを使ってgnomeアプリを作っていましてその文献に載っている
通りにやっている為です。

すみませんでした。

317 名前:login:Penguin mailto:sage [03/12/04 04:34 ID:yhHCplv3]
>>316
はあ?なんでstdargs.h使わんの?

318 名前:login:Penguin [03/12/05 00:38 ID:G4+zQR3e]
下のプログラムをプロファイラ(memprof)で見てみると func で確保した
ものがリークしてると出るんです。pixbuf しかないし、ポイントし続けてる
つもりなんですが、どこがいけないのでしょう?
#include <gtk/gtk.h>
GdkPixbuf *func(void)
{
GdkPixbuf *pixbuf;
pixbuf=gdk_pixbuf_new_from_file("file.xpm",NULL);
return pixbuf;
}
int main (int argc, char *argv[])
{
GdkPixbuf *pixbuf;
gtk_init (&argc, &argv);
pixbuf=func();
gtk_main ();
return 0;
}


319 名前:login:Penguin mailto:sage [03/12/05 00:48 ID:G4+zQR3e]
ちなみに、元のプログラムからいろいろ省いたのが上ので、元の
プログラムでは、pixbuf の表示はできてます。
それと、gdk_pixbuf_new_from_file は何箇所か使ってるんですが、
2回目以降はリークがでません。

320 名前:login:Penguin mailto:sage [03/12/05 11:02 ID:jnR1QCBC]
>>318
自分はgdk-pixbuf使った事無いんで自信はないですが、
使い終わったらunref()するのでは。

321 名前:login:Penguin mailto:sage [03/12/05 14:22 ID:G4+zQR3e]
>>320
func や main に g_object_unref をいれてみましたが、相変わらずです。

上のプログラムでは pixbuf を使ってないですが、元のでは頻繁に利用する
ツリー表示のアイコンとしてつかってるので、プログラム終了まで
解放する必要がないと思ってるんですが・・。


322 名前:login:Penguin mailto:sage [03/12/05 16:27 ID:10rca9Ek]
>>320
gdk_pixbuf_unref(pixbuf); は?

リファレンスマニュアル読んでないだろ。

323 名前:login:Penguin mailto:sage [03/12/05 18:07 ID:jnR1QCBC]
>>322
GTK2以降のリファレンスマニュアル読んでないだろ。

324 名前:login:Penguin mailto:sage [03/12/05 18:50 ID:G4+zQR3e]
Warning
gdk_pixbuf_unref is deprecated and should not be used in newly-written code. Use g_object_unref().

>>322
gtk2 なので上記のとおりなんです。



325 名前:318 [03/12/07 00:50 ID:XPfatUb2]
gtk と glib のデバッグ情報付きライブラリーをくっつけてみた。
pixbuf 読み込むための外部モジュールを読み込んでるあたりが、関係してる
ようだけど、俺のスキルでは読みきれません。

どなたか解説きぼん。

326 名前:login:Penguin mailto:sage [03/12/07 12:25 ID:TQPhdBR3]
他のメモリプロファイラを試してみる



327 名前:login:Penguin mailto:sage [03/12/09 00:21 ID:9M8YybjC]
GListを使ってコンボボックスのリストを作成しています。
しかし実行してみると、空行ばかりリストに登録されていて文字列が表示されません。ここで2日足踏み中_| ̄|○
list_server = g_list_append(list_server, "tmp");
のように直接文字列入れると表示されるのですが、文字列変数を入れるとダメぽ。助けて・・・

参考にしたサイト
www-6.ibm.com/jp/developerworks/linux/000811/j_glib.html

328 名前:318 [03/12/09 00:40 ID:PATSnh0H]
>>326
mpatrol 試した。
memprof 以上に unfreed があると指摘されまくり。
同じプログラムなのに・・。
mpatrol がよくわかってないのでもちっと修行してみやす。

329 名前:login:Penguin mailto:sage [03/12/09 00:44 ID:0I2itgVb]
>>327
まずテストコード書いて試してみよう。そんでだめなら、そのテストコードをここで
晒してみれば、きっと誰か答えてくれるよ。

330 名前:327 mailto:sage [03/12/09 00:52 ID:9M8YybjC]
static GList *
Load_servlist(GList *list_server)
{
FILE *fp ;
char tmp[256] ;
memset(tmp, '\0', sizeof(tmp)) ;
if((fp = fopen("servlist.lst", "r")) == NULL){
printf("serverlist not found\n") ;
exit(0) ;
}
while(1){
if(fgets(tmp, sizeof(tmp), fp) == NULL)//ファイルの終わり
break ;
if(tmp[1] == '\n')//空行を飛ばす
continue ;
tmp[strlen(tmp)-2] = '\0' ;//改行を削除
list_server = g_list_append(list_server, tmp);//リストに追加
printf("add list:%s\n", tmp) ; //ここではちゃんとファイルから読んだ文字列が表示されてる
memset(tmp, '\0', sizeof(tmp)) ;
}
fclose(fp) ;
return list_server ;
}
このあとに
gtk_combo_set_popdown_strings(GTK_COMBO(combo_server), list_server) ;//リストを登録
gtk_widget_show (combo_server);
としています。
member.nifty.ne.jp/jago/gtk/gtk05.htm
ここのテストコードのコピペでは動作しましたが、文字列格納部分だけこれに差し替えたところダメでした・・・

331 名前:login:Penguin mailto:sage [03/12/09 01:19 ID:PATSnh0H]
>>330
全ての要素が同じものを指してるからそうなる。

GList に追加する文字列は、それぞれにメモリーが割り当てられてる必要が
ある。g_strdup(tmp) した結果を g_list_append したらどう?


332 名前:login:Penguin mailto:sage [03/12/09 01:28 ID:0I2itgVb]
>>330
g_list_appendしても、list_serverには文字列がappendされるわけじゃなくて、
tmpへのポインタがappendされるだけ。で、その後ご丁寧にmemsetで'\0'
を代入してるから、中身が消えちゃうと。

だから、g_list_append(list_server, g_strdup(tmp));に変更すればちゃんと
動くはず。

 それと、この件とは関係ないけど、fgetsは文字列の終端にちゃんと
'\0'を代入してくれるので、memsetは不要だよ。

333 名前:332 mailto:sage [03/12/09 01:29 ID:0I2itgVb]
ケコーン?(;´Д`)

334 名前:327 mailto:sage [03/12/09 01:35 ID:9M8YybjC]
>>331さん御指摘のとおり
list_server = g_list_append(list_server, g_strdup(tmp));
としたら出来ました。ありがとうございます。

早く漏れも質問に答えられるくらいになりたい(;´Д`)



335 名前:327 mailto:sage [03/12/09 01:39 ID:9M8YybjC]
>>332
ありがとうございます&漏れのためにケコーンおめ(*´Д`)
リスト追加のあとのmemsetも消すことにします。

336 名前:login:Penguin [03/12/11 16:46 ID:GOm24c4o]
ちょっとお聞きしたいことがあります。
僕が使っている環境では、G_MAXINTは2147483647でlong型の最大値になっているのですが、
gtk_drawing_area_size(GTK_DRAWING_AREA(drawing_area),G_MAXINT,height);
というような使い方ができません。int型の最大値の32767までしか指定できません。
これ以上大きな数を指定することは仕様上できないのでしょうか?
初心者で質問がわかりづらいかもしれませんがよろしくお願いします。

337 名前:login:Penguin mailto:sage [03/12/12 23:45 ID:btGr7o25]
どうできないか書いた方がいいんじゃない。
コンパイル通らんのか、反映されないだけなのかとか・・
それと、どういう目的でそういう値にしたいかも

338 名前:336 [03/12/13 12:37 ID:6GbNE/xa]
コンパイルは通ります。drawing_areaをgtk_window_new(GTK_WINDOW_TOPLEVEL)で作ったウィンドウに入れて
gtk_widget_set_usizeで最小サイズを設定しているのですが、上のようにgtk_drawing_area_sizeを実行すると設定
した最小サイズになってします。
目的は、グラフを拡大したいということです。横軸を時間軸として、その横軸を長くすることでグラフを拡大しようと
しています。(なんか伝わりづらいなぁ)

339 名前:login:Penguin mailto:sage [03/12/13 23:25 ID:8QtS2odM]
>>338
「なんか伝わりづらい」と感じたら、もうちょっと
文章を校正してから投稿しませう。

まず、G_MAXINTはlongではなく、intの最大値になっているはず。
自分の手元にあるGTK1.2と2.0のヘッダではどちらも、
#define G_MAXINT INT_MAX
#define G_MAXLONG LONG_MAX
となっています。

次に、windowの中にdrawing_areaが入っている、という構造は
理解されていますか?前者のサイズが後者より小さければ、
当然親である前者のサイズ指定が優先になります。

あるいはそういうことではないなら、コードを出した方が早いのでは。

(2.0ではdeprecatedな関数名が出ているので、GTKのバージョンは
1.2だと思いますけど、まずそれが書いてあった方がよかったかも。)

340 名前:338 [03/12/15 16:12 ID:ewsDweDI]
レスが遅くなってすみません。
まず、gtkのバージョンは1.2です。

自分で考えてみたのですが、僕の環境ではINT_MAXが2147483647に設定されているので
G_MAXINTも2147483647に設定されているが、本来はintの最大値は32767。
だから、G_MAXINTも本来は32767なはず。

つまり、
gtk_drawing_area_size (GtkDrawingArea *darea,
gint width,
gint height);
のwidthとheightは0〜32767までしか指定できない。

ということでしょうか?

341 名前:login:Penguin mailto:sage [03/12/15 20:28 ID:t6DB0CFT]
>>340
gtk1.2では
struct _GtkRequisition
{
gint16 width;
gint16 height;
};
でし。ソースみてけれ。



342 名前:336 [03/12/16 17:34 ID:677jpJGz]
>>341
やっぱりそうなんですか。わざわざ答えてくださって、ありがとうございます。
32767より大きくすることは無理みたいですね。

343 名前:login:Penguin mailto:sage [03/12/17 16:04 ID:qUoRXvI8]
>>342
明示的な制限があろうがあるまいが、そんなでかい座標系を安直に扱かってま
ともに動くか不安、ってのが普通の感覚では。
正規化して数千ぐらいには収まるようには出来ないの?

そもそも何をやりたいのか書いた方がもっと建設的な議論が出来そうだけど。

344 名前:login:Penguin [03/12/20 15:53 ID:GhCH1q1G]
GTK+ FAQ 2003-11-24 版 日本語訳
www.gnome.gr.jp/docs/gtk+faq.20031124.html



345 名前:login:Penguin [04/01/12 15:15 ID:TTcLcp55]
GTK+ FAQ 2004-01-09 版 日本語版
www.gnome.gr.jp/docs/gtk+faq.20040109.html

346 名前:login:Penguin [04/01/15 06:51 ID:IzHB4VVw]
D使おうよ

347 名前:login:Penguin [04/01/22 18:28 ID:KKqp1ICo]
>>346
DUIね。
ttp://dui.sourceforge.net/


348 名前:login:Penguin mailto:sage [04/01/24 22:36 ID:GyINHokb]
GTK 勉強しようと思うんですが、1.2 と 2.0 って、どっちのコードの方が
単純なものになりますか?2.0 になってやれることが多くなった反面、複雑な
手続きを踏む必要ができたとか、コードが整理されてシンプルかつ軽くなった
とかの情報をいただけるとさいわいです。

349 名前:login:Penguin mailto:sage [04/01/25 03:13 ID:1SBJ9zXH]
今さら1.2は覚えるだけ無駄なので2.0系にすべし。
少なくとも公式のドキュメントは2.0系の方が充実しているしね。

350 名前:login:Penguin [04/01/25 16:47 ID:X02pqnTw]
GTK+ FAQ 2004-01-14 版 日本語版
www.gnome.gr.jp/docs/gtk+faq.20040114.html

351 名前:login:Penguin mailto:sage [04/01/25 17:00 ID:KoO4Yggh]
>>350
いつも乙。ChangeLogくらいつけてくれたらもっとうれしい人が増えると思われ。

mail.gnome.gr.jp/ml/gnome-translation/200401/msg00050.html
前バージョンからの変更点は次のとおりです。

4.7
autoconf,automake のバージョン更新
サンプル configure.in 修正

5.6
そのまま 2.x 用に移行

5.5
サンプルコード修正

5.7
タイポ修正
>gtk_widget_get_parent()関連の追記

5.8
そのまま 2.x 用に移行

5.9
サンプルコード修正


352 名前:login:Penguin [04/01/25 20:35 ID:uE3bT0rU]
gtk+ をコンパイルするときに
./configure --with-locale=ja_JP.EUC
とすると日本語表示OKなのですが、
./configure --with-locale=ja_JP.eucJP
とすると日本語表示NGになってしまいます。

ja_JP.EUC と ja_JP.eucJP の違いは何でしょうか?
ja_JP.eucJPだと不可な理由は何でしょうか?


353 名前:login:Penguin mailto:sage [04/01/25 20:52 ID:9amne98y]
>>352
システムにja_JP.EUCというlocaleが存在しないからでは?
OSは何を使っている?

354 名前:login:Penguin mailto:sage [04/01/25 20:55 ID:9amne98y]
>>353
間違えた。s/ja_JP.EUC/ja_JP.eucJPね。_| ̄|◯



355 名前:352 [04/01/25 21:09 ID:uE3bT0rU]
>>353
OSはMacOSXです。

$ ls /usr/share/locale/ja*
ja ja_JP ja_JP.SJIS ja_JP.UTF-8 ja_JP.eucJP

となるので ja_JP.eucJPは存在します。
環境変数は
$ export LANG=ja_JP.eucJP
としています。

356 名前:login:Penguin mailto:sage [04/01/25 23:41 ID:/R11UVAp]
たしか BSD 系の OS は X11 の locale については XLocale が面倒見てたと思うので、
/usr/share/locale/* とはまた別になると思う。( Linux は glibc が全部やってる)

この周りの話は限りなくシステム依存なので Mac 板で聞いたほうがきっと早い。

357 名前:login:Penguin [04/01/26 15:01 ID:KEkReNS8]
gtk2 を使って画像表示のアプリを作ってるんですがカーネルのバージョンによって
動作速度がひどく変わります。

ウィンドウからはみ出すような大きな画像をドラッグしてスクロールするように
しているのですが、カーネル2.4 だとサクサク動くのに 2.6 だとマウスの動きに
かなり遅れて画像がついてきます。

2.6 でも軽く動くように変えたいんだけど、何か気をつけるところでも
あるんでしょうか?

358 名前:login:Penguin mailto:sage [04/01/26 15:05 ID:Wuwgl5VW]
漠然としすぎてて、わかんねーよ(w

359 名前:login:Penguin [04/01/26 15:08 ID:KEkReNS8]
マウスまわりの処理で、カーネルが変わって気をつける点があるのかな
ってことです。

360 名前:login:Penguin mailto:sage [04/01/27 17:15 ID:hqPkLSFb]
みんな、GObject とか使ってる?
チュートリアルとか読んでみたんだけど、使い方が良く分からん...。


361 名前:login:Penguin [04/01/27 21:34 ID:xBBLI74B]
357 だけど解決した。

psmouse のサンプリングレートと解像度をモジュールのオプションとして
指定したらなおった。

362 名前:login:Penguin mailto:sage [04/01/28 21:57 ID:s3WOXzt9]
windowにfixedを貼り付けました。
windowにexposeシグナルのハンドラをconnectしました。
そのシグナルハンドラに制御が飛んできません。
fixedを除いてだったら渡ってきます。
また、同じハンドラをfixedにconnectすると渡ってきてくれます。

こういうものなのでしょか。
fixed貼ってあっても、あくまでもwindowにシグナル受け取って欲しいものなのですが。


363 名前:login:Penguin mailto:sage [04/01/29 12:38 ID:5f0Q1I1K]
Pangoで文字の重ね打ちがやりたいんですが面倒?

364 名前:login:Penguin mailto:sage [04/01/30 00:14 ID:haUKggm8]
gtk_widget_get_pango_contextとpango_layout_newで
PangoLayoutを取得して
pango_layout_set_textでテキストをセット
gdk_draw_layout_with_colorsでGdkDrawableに描画することができる。

ただしアンチエイリアスされる状態で下手に重ねうちすると
文字がどんどん太りがちになるので注意

(文字をすでに打った上から重ねうちすると、すでに表示されている
文字とさらにアルファブレンディングすることになる。
白地に黒文字を表示する場合、これをくりかえすと重なった部分が
どうしても黒にどんどん近づいてしまう)



365 名前:login:Penguin mailto:sage [04/01/30 01:48 ID:Ribhh1SU]
>>360
素の GObject 使うより、とりあえず gob 使ってみるとか。


366 名前:360 mailto:sage [04/01/30 09:25 ID:xXVlWb2I]
>>365
gob 知らなかった.。・.。・(ノД`).。・.。・ありがとう







[ 続きを読む ] / [ 携帯版 ]

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

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