[表示 : 全て 最新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プログラミング(小学館)を買ってきました。
これから読んでみます。

217 名前:login:Penguin mailto:sage [03/07/12 15:23 ID:CNiFHab+]
少なくともGDKレベルでやれば何とかなる気もすます。
ていうかバグ臭いかなそれ。

218 名前:login:Penguin [03/07/14 02:43 ID:5XjH4O4S]
age

219 名前:山崎 渉 mailto:(^^) [03/07/15 11:17 ID:doz396Fq]

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

220 名前:login:Penguin [03/07/15 12:05 ID:Fo16Kpwc]
(・∀・)renice!

221 名前:login:Penguin [03/07/17 20:37 ID:qoyTZeYl]
で、GtkGLExt使ってるヤシっている?

222 名前:login:Penguin [03/07/18 00:28 ID:NwO1ORPE]
GTKって、タブ移動の概念ってある?
なんかこういうダイアログって、
gtk-wimp.sourceforge.net/screenshots/gfx/gtk.gif
タブコントロール(タブ移動とは別の)に移動できないんだけど。

223 名前:login:Penguin mailto:sage [03/07/19 02:39 ID:E7P2kjzI]
/* 初めて書いたGTK2アプリを記念カキコ */

#include<gtk/gtk.h>

int main (int argc, char** argv)
{
GtkWidget *window;
GtkWidget *calendar;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

calendar = gtk_calendar_new();
gtk_container_add(GTK_CONTAINER(window), calendar);

gtk_widget_show_all(window);
gtk_main();
return 0;
}

224 名前:login:Penguin mailto:sage [03/07/19 14:08 ID:zaPj7Dgy]
>>223
ひねりなしかよ。

225 名前:login:Penguin [03/07/23 11:46 ID:ZPPlsMW8]
(・∀・)renice!



226 名前:login:Penguin mailto:sage [03/07/24 06:52 ID:fVjg/qZ7]
>>223はその後
gtk_window_set_title(GTK_WINDOW(window), "gcal");
を加えたに12signal

227 名前:login:Penguin [03/07/27 11:44 ID:Aq2rr+SO]
(・∀・)renice!

228 名前:login:Penguin [03/07/30 12:13 ID:cPdgkLk2]
(・∀・)renice!

229 名前:ぼるじょあ ◆yBEncckFOU mailto:(^^) [03/08/02 05:03 ID:+QUfMouI]
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

230 名前:login:Penguin [03/08/02 10:26 ID:2rmp9gin]
(・∀・)renice!

231 名前:login:Penguin [03/08/08 11:54 ID:mg5o8ebS]
(・∀・)renice!

232 名前:login:Penguin [03/08/08 13:14 ID:9dXoYmRI]
(・∀・)

233 名前:login:Penguin [03/08/13 12:31 ID:pfCYHBFY]
(・∀・)renice!

234 名前:山崎 渉 mailto:(^^) [03/08/15 22:50 ID:dil3w4kp]
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

235 名前:login:Penguin [03/08/15 23:48 ID:GfNK1qbf]
(・∀・)renice!



236 名前:login:Penguin mailto:sage [03/08/16 18:54 ID:1hd43OWj]
もしかして、gtk1.2 で Button4,5(ホイール)の
GDK_BUTTON_PRESSイベントって配送されない?

237 名前:login:Penguin [03/08/17 07:22 ID:MkQ6Z6x8]
質問。
ItemFactory のアクセラレーターキーの指定で、
ファンクションキーの場合はどう表記すればいいですか?

238 名前:login:Penguin mailto:sage [03/08/19 09:54 ID:ocMYGtK+]
IDがGtK+なので祈念化旗鼓

239 名前:login:Penguin [03/08/25 09:48 ID:+hXUD3jL]
(・∀・)renice!

240 名前:login:Penguin [03/08/28 18:06 ID:r/AujdJz]
gtk+2ってかなり重くない?
gtk+1は再描画一瞬で終わるのにgtk+2は描画してるの見えるし。
何が悪いんだろ。utf8? xft?


241 名前:login:Penguin [03/08/28 18:29 ID:HlBh46Kn]
メニューバーをクリックするとメニューが出てくる(ファイルとか編集とか)
同じ場所をもう一度クリックするとメニューが引っ込む・・・

はずなんだけど
Linuxのアプリって出したメニューが引っ込まないような気がする
引っ込むようにはできないの?

242 名前:login:Penguin mailto:sage [03/08/28 18:34 ID:5x7m3sUW]
gtk2を使ってちょ。

243 名前:login:Penguin mailto:sage [03/08/29 16:34 ID:9qGUa9Nr]
初心者です。どうしても気になるけれど
どこにも解説がない事があります。

なぜ
GtkButton *button = gtk_button_new();
じゃなくて
GtkWidget *button = gtk_button_new();
なのですか?

244 名前:login:Penguin mailto:sage ネタか? [03/08/29 18:52 ID:F8jx8uO3]
gtk_button_new()が GtkWidget* を返すからだろ。

245 名前:243 mailto:sage [03/08/29 23:13 ID:9qGUa9Nr]
つまりは、なぜに
GtkButton *gtk_button_new(void);
でないか、ということをお聞きしたいのです。



246 名前:login:Penguin mailto:sage [03/08/30 00:40 ID:npfy9qpx]
鷲のしょーもない理解でよければ...

GtkButtonヴィジェットは、ボタンとしての側面以外にも
「ラベルとかをはりつけて表示する(Container)」とか
「シグナルを発生する」(まぁボタンとしての性質だが、ボタンに限らない)
とかもある。

そこで、生成するときはGtkWidgetで生成しておき、必要に応じて
キャスト(GTK_BUTTON()とか)して使う。

ボタンの性質(押されているか)を扱うときはGTK_BUTTONでキャストするし
コンテナの性質(ほかのヴィジェットを貼り付ける)を扱うときは
GTK_CONTAINERでキャストすることで
それぞれの型のヴィジェットとして扱うことができる。

247 名前:login:Penguin mailto:sage [03/08/30 10:44 ID:aGRYNy0z]
>>243
なぜなら、オブジェクト指向に則っているから。

248 名前:login:Penguin mailto:sage [03/08/30 11:19 ID:ooQKA+zG]
>>247
オブジェクト指向なら new くらい継承してくれってことじゃないのか?

249 名前:243 mailto:sage [03/09/01 01:17 ID:uanR/ozZ]
>>246
解説どうもです。
そこらへんの使い方は分かってるつもりなんですが、
「そこで」の部分の理由がよく分かないんです。
普段は、ButtonはButtonとして定義して、CONTAINERとして使いたい
ときはそうキャストすればいいのではないかと思ったので。

>>247,248
すまん、よく分からない。(Eiffel本読書中の身です)

250 名前:login:Penguin mailto:sage [03/09/01 03:10 ID:6aY0iPSh]
javaやc++と違ってcでオブジェクト指向を実現しているgtk+では
アップキャストでも明示的にキャスト用マクロが必要となる。

GtkWidget* を引数にとる関数を使う頻度の方が GtkButton* を引数にとる関数を使う頻度より多いから
最初から GtkWidget* を返した方が後々のキャスト量が減ってプログラム記述の冗長さが減る

251 名前:243 mailto:sage [03/09/01 12:57 ID:uanR/ozZ]
>>250
なるほど、頻度の問題なんですね。
どうもありがとうございました。

252 名前:login:Penguin [03/09/01 20:35 ID:2b6fGses]
素朴な質問です。

gtk2でオリジナルwidgetを書いています。
親widgetでハンドルされていないイベントを追加する必要に迫られました。
(例:GDK_POINTER_MOTION_MASK)
ただし、realizeイベント・ハンドラはオーバーライドしていません。
皆さんならどうしますか?

1. realizeをオーバーライドして、GdkWindowAttr構造体event_maskメンバで指定する。
2. GInstanceInitFuncハンドラ内でgtk_widget_add_events()を呼び出して追加する。
3. それ以外。

253 名前:login:Penguin [03/09/06 17:30 ID:E4nfQMs/]
(・∀・)renice!

254 名前:login:Penguin mailto:sage [03/09/20 19:40 ID:63iWcr2P]
(・∀・)renice!

255 名前:login:Penguin [03/09/22 23:08 ID:vXbOU9AM]
VRMLオブジェクト(CG)をファイル選択widgetから選択し、
ウインドウwidgetに表示出力させたいと思っているのですが、
VRMLオブジェクトを出力出来る様なwidgetは存在するのでしょうか?
もし知っている方いらっしゃいましたら、ご助言宜しくお願いします。



256 名前:login:Penguin mailto:sage [03/09/23 00:04 ID:C61XdUyB]
>>255
"VRMLオブジェクトを"直接表示できるものは知らないが、
VRMLの表示部分は自分で作成するのであるというのなら、2通りの方法が

1.線や塗りつぶしが主体の場合
widget=gtk_drawing_area_new() で表示領域を確保
barwidget[trk]->window をDrawableとしてgdk_draw_rectangleなどの
Gdk描画系関数を実行
Xのプログラミングに近く、色の扱いが面倒だし、再表示のたびに線とかを
描き直さなければならない(DrawableとしてPixmapを使えばいいが)

2.イメージを表示する場合
pixbuf=gdk_pixbuf_new(...);
widget=gtk_image_new_from_pixbuf(pixbuf);
なんかでpixbuf描画領域を確保。描画操作はpixbufに対して行う。
pixbufは1ピクセルにつきR,G,B(,A)1バイトずつのVRAMのイメージ。
色はRGB要素を指定するだけでいいが、線を引くにもどの座標に
点を打つかは計算してやらないといけない。

1,2の合わせ技として、gdk_pixbufの内容をDrawableに描く関数
(gdk_draw_rgb_image等)もあるので必要に応じて使う。

257 名前:login:Penguin mailto:sage [03/09/23 17:39 ID:CXvOrUVV]
>>252
超遅レスだけど、余計なコ−ド書かない2でいいのでは。
realizeを書くケ−スは、realizeが実装されていない抽象クラス(GtkWidgetとかGtkContainer)から直に派生する時ぐらいじゃないかな。

258 名前:257 mailto:sage [03/09/23 17:53 ID:CXvOrUVV]
あ−実装されてないっていうのはgdk_window_newを呼んでないって意味でつ

259 名前:login:Penguin [03/09/25 17:05 ID:FN6PNMc8]
(・∀・)renice!

260 名前:login:Penguin mailto:sage [03/10/01 17:51 ID:OtB8zaps]
gtktreeview上にリストのデータを表示してる時に、複数行を選択した状態で
右クリックしてメニューを表示させたいのですがどうすればいいんでしょう?

複数行の選択まではできてますが、そこで右でも左でもクリックすると複数
行の選択がクリックした行だけの選択にかわってしまいます。


261 名前:login:Penguin [03/10/11 23:17 ID:5hfILiTB]
初歩的な質問ですいません。
cygwinでGTKを使用したいため、 様々なホームページを参照した結果GTK2.0をインストールしました。
サンプルソースのインクルードの指定が
#include "gtk/gtk.h"
となっているのですが、今回、インストールした結果、
次のようなディレクトリ構造であった為、以下の記載に変更しました。
gtk-2.0/gtk/gtk.h
これでgcc test.cを実行したところ
gtk.hでincludeされている他のヘッダーファイルが参照できず、
たくさんエラーが出ました。
そこで、元々のサンプルのインクルードの記載に戻し、
gtkディレクトリを一つ上にコピーしたのですが、同様の結果でした。
すいませんが、解決方法をご教授下さい。
<サンプルソース>
#include <gtk/gtk.h>
int main(int argc, char* argv[]){
GtkWidget* window;
GtkWidget* label;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
label = gtk_label_new("Hello World.");
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show_all(window);
gtk_main();
return 0;}


262 名前:login:Penguin mailto:sage [03/10/11 23:44 ID:kUFRMD7K]
cygwinのことは知らないけど、コンパイルのオプションに-Iでインクルード
ファイルのありかを教えるんじゃないの?
というか pkg-config --cflags --libs gtk+-2.0 で全部勝手にやってくれる。
ドキュメントのコンパイルのあたりよんでよ。

263 名前:login:Penguin mailto:sage [03/10/13 16:46 ID:Y2TizDoa]
GTK使うなら、1.2系を使えよ!

264 名前:login:Penguin mailto:sage [03/10/13 19:55 ID:Y2TizDoa]
1.2なら俺がいろいろ教えてやるぞ

265 名前:login:Penguin mailto:sage [03/10/13 20:55 ID:ebIrzkRx]
1.2って削除の方向に向かってるんですか?



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使わんの?






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

前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