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

161 名前:160 mailto:sage [03/04/16 18:48 ID:p/eHtb4s]
pixmap=gdk_pixmap_new(drawable,xsize,ysize);
visual.type=GDK_VISUAL_STATIC_GRAY;
visual.depth=1;
visual.colormap_size=1;
visual.bits_per_rgb=1;
visual.red_mask=1;
visual.red_shift=1;
visual.red_prec=1;
visual.green_mask=2;
visual.green_shift=2;
visual.green_prec=1;
visual.blue_mask=4;
visual.blue_shift=3;
visual.blue_prec=1;
colmap2=gdk_colormap_new(&visual,TRUE); ←ここで落ちる
gdk_drawable_set_colormap(pixmap,colmap2);

pangocontext=gtk_widget_get_pango_context(widget);
pangolayout=pango_layout_new(pangocontext);
pangofontdesc=pango_font_description_new();
pango_font_description_set_family(pangofontdesc,"monospace");
pango_layout_set_font_description(pangolayout,pangofontdesc);
pango_layout_set_text(pangolayout,"TEST",4);

gdk_draw_layout_with_colors(pixmap,gc,0,0,pangolayout,gdkcol,NULL);
getimg=gdk_drawable_get_image(pixmap,0,0,xsize,ysize);

/* getimg->mem の内容をプログラムで使用する */

162 名前:160 mailto:sage [03/04/16 18:53 ID:p/eHtb4s]
大切なとこ間違えてたスマソ
× pixmap=gdk_pixmap_new(drawable,xsize,ysize);
○ pixmap=gdk_pixmap_new(drawable,xsize,ysize,8); /*深さ固定*/

163 名前:login:Penguin [03/04/16 20:10 ID:lo8mJ2VY]
gtk2ってUTF8で渡さないと文字書いてくれないですよね。
で教えて欲しいのですが、EUC-JPからUTF8に変換するには
普通 iconv を使うものなのですか? それとも mbstowcs とかでもOK?

とりあえず今は iconv 使って表示できてるけどムダなのかな。


164 名前:login:Penguin mailto:sage [03/04/16 20:27 ID:f73hW52k]
mbstowcs は wchar_t が UTF-8 であることを仮定しちゃうことになるので
使っちゃだめ。
iconv() の wrapper である g_iconv 系の関数か、g_locale_to_utf8() を使う。
前者は変換元の文字コードを明示的に指定したい場合。
後者は「locale の文字コード」から変換したい時。gconvert.h を参照のこと。



165 名前:160 mailto:sage [03/04/17 01:22 ID:LaltSFnA]
PangoとXftを組み合わせればなんとかなりそうという気がしたが
...どうやって使うのだろうか

XCreatePixmapでPixmap作成(Xは使いたくなかったが...)
XftDrawCreateAlphaでXftDraw作成
XftDrawColormapでカラーマップ作成
pango_xft_get_font_mapでPangoFontMap作成
pango_font_description_newでPangoFontDescription作成、必要な値をセット
pango_font_map_load_fontでフォント読み込み
script_engine_listでpangoエンジンIDを取得←このあたりよくわからん
script_engine_loadでロード
PangoEngineShape(←これはどうやって取得するのか...)で
文字列からPangoGlyphStringに変換
pango_xft_renderで文字列描画
XGetSubImageでイメージ取得、でいいのかな?

166 名前:山崎渉 mailto:(^^) [03/04/17 11:49 ID:KRn99/cy]
(^^)

167 名前:login:Penguin mailto:age [03/04/19 23:58 ID:OPO/Nk6v]
保全age

168 名前:山崎渉 mailto:(^^)sage [03/04/20 05:47 ID:X64WTq1+]
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

169 名前:login:Penguin mailto:sage [03/04/22 18:53 ID:f6Aef7e/]
>>164
> mbstowcs は wchar_t が UTF-8 であることを仮定しちゃうことになるので
> 使っちゃだめ。

どんなlibcをつかってんだ(w
UTF-8っつーのは最大6byteのマルチバイトなcharacter encoding schemeだそ。
union wchar_t{
uint64_t wc;
char utf8[8]; /* 先頭2byteおまけ */
} wchar_t;
みたいな実装にはお目にかかったことが無いけど?
# wchar_tがUCS2だったりUCS4だったりする実装は山ほど在るが。

>>163に答えるなら、内部エンコードを仮定云々は関係なしに
「mb/wcはコード変換機能ではない」だろうよ。




170 名前:160 mailto:sage [03/04/22 23:43 ID:N17I9atm]
(pangoを使って配列に文字描画結果を格納する)
gdk-pixbufを使って解決しますた
ウィンドゥと同じ深さのpixmapを用意して
そこに文字を描画して
gdk-pixbufにとりこむ
gdk-pixbufはハードにかかわらずRGB24bitで操作できる

pixmap=gdk_pixmap_new(window,xsize,ysize,-1);
pixbuf=gdk_pixbuf_new(GDK_COLORSPACE_RGB,TRUE,8,xsize,ysize);

pangocontext=gtk_widget_get_pango_context(widget);
pangolayout=pango_layout_new(pangocontext);
pangofontdesc=pango_font_description_new();
pango_font_description_set_family(pangofontdesc,"monospace");
pango_layout_set_font_description(pangolayout,pangofontdesc);
pango_layout_set_text(pangolayout,"TEST",4);

gdk_draw_layout_with_colors(pixmap,gc,0,0,pangolayout,gdkcol,NULL);
gdk_pixbuf_get_from_drawable(pixbuf,pixmap,NULL,0,0,xsize,ysize);

171 名前:160 mailto:sage [03/04/22 23:49 ID:N17I9atm]
↑これで配列に取り込まれるので
gchar *pos;
pos=gdk_pixbuf_get_pixels(pixbuf)+x*4+y*gdk_pixbuf_get_rowstride(pixbuf);
で、R:pos[0], G:pos[1], B:pos[2], A:pos[3]で(x,y)の値が取得可能。

XmbDrawStringとXGetSubImageでもできないことはないが、pangoに
こだわったのは、(プログラム操作する側をふくめて)フォントの
扱いが簡単になり、統一がとれるため。

ただ、アンチエイリアスフォントはこの方法できれいにとれるが
2値(ビットマップ)にしたいばあいがきれいにとれない....

172 名前:164 mailto:sage [03/04/26 03:02 ID:d+JpEtZU]
>>169
あ、UCS4 だ。UTF-8 じゃねぇや..ボケてた。
>「mb/wcはコード変換機能ではない」だろうよ。
が言いたかったことです。wchar_t の実装がどうなってるかを
仮定するな、ってことで。

173 名前:login:Penguin [03/04/29 04:55 ID:TV50G8uM]
Gtk でスプラインとかベジェとか、曲線を描きたいのですが、サンプルとか無い
でしょうか。Gtk 単体では難しそうなので、他のライブラリも必要かなと思うの
ですが。作りたいのは Flash みたいな Vector Animation です。

174 名前:login:Penguin mailto:sage [03/04/29 15:26 ID:37fqnSLQ]
DPS (Display PostScript)を使用するのがいいんじゃない?
使ったことないけど(^^;
www.xfree86.org/4.2.0/dps.html

175 名前:login:Penguin mailto:sage [03/04/29 18:48 ID:LuljFrkZ]
>>173
www.gyve.org/
はもうダメぽなので
sodipodi.sourceforge.net/
とか参考にどうよ、かなり萎えるTopだが。

176 名前:login:Penguin mailto:sage [03/04/29 21:12 ID:dHsFcWW5]
>>175
スクリーンショットがひどぃ...

177 名前:login:Penguin mailto:sage [03/04/29 22:05 ID:ER/8FD9H]
>>175
gyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

178 名前:login:Penguin [03/04/29 22:35 ID:/4ZC/4OS]
>175
ワラタ、腹筋硬直するぐらい

179 名前:login:Penguin mailto:sage [03/04/29 22:36 ID:AjRnLWEG]
参った・・・



180 名前:login:Penguin mailto:sage [03/04/29 22:39 ID:clC6rFXj]
精神的ブラクラ
sodipodi.sourceforge.net/index.php3?section=gallery/ain

181 名前:login:Penguin [03/04/29 22:40 ID:OyAr9ioi]
>174-175
ありがとうございます。
guppi や gtkextra も見てみましたが、GtkGLExt で OpenGL を使ってみようかな
と考えています。

182 名前:login:Penguin mailto:sage [03/04/29 22:49 ID:/4ZC/4OS]
>180
svgでここまで書かれると凄いものがあるな

183 名前:login:Penguin mailto:sage [03/04/30 05:22 ID:+Nekyn/i]
>>173
使ったことはないのだが、GNOMEならlibartを使うのが王道っぽい。

184 名前:login:Penguin mailto:age [03/04/30 13:31 ID:Cq88QVNL]
gyk+インスコ難い

185 名前:login:Penguin mailto:sage [03/04/30 22:31 ID:frxRUIpZ]
>183
これかなり良いですね。ちょっと試してみます。ありがとうございました。

186 名前:login:Penguin mailto:sage [03/05/01 03:56 ID:BcJCA4M8]
ほー、levien さんって GhostScript のメンテナーさんなんだ。なるへそ。
libart って gnome 無くても使えるみたいだね。fresco にも使われてる。

187 名前:login:Penguin mailto:sage [03/05/01 04:22 ID:v9irLuOR]
>>164

wchar_tをUnicodeと見なすのは悪だというのは、ダメハッカーの寝言。
このアプリではwchar_tはUnicodeに限定すると、宣言すればいいだけのこと。
どうせ、g_locale_to_utf8()も内部ではmbstowcs()呼んでるよ。
まあ、その場合でもglibの関数を使うべきだが、それはUTF-8仮定とか
が理由ではない。

>>173
ベジエなんて自分で書けるだろ。ほれ。
double x = (1-t)*(1-t)*p0.x + 2*t*(1-t)*p1.x + t*t*p2.x;
double y = (1-t)*(1-t)*p0.y + 2*t*(1-t)*p1.y + t*t*p2.y;
0<=t<=1な。

>>183の言うとおり、libartでもベジエをドローできる。
libartだとアンチエイリアスの機能もあるのでありがたくはある。




188 名前:login:Penguin mailto:sage [03/05/01 16:22 ID:N64qTJQU]
>>187 ソース読めない香具師ハケーン
glibは文字コード変換はiconvでやってますが何か?

g_convert_to_utf8 -> g_convert -> g_covert_with_iconv -> g_iconv -> iconv

MS-Win32のバヤイMultiByteToWideCharを使ってるがこいつは非POSIX関数だしな。
変換結果がUCS2(プッ16bitかよ)だと保証がある。
一旦MBCSからUCS2に変換して自前でUCS2->utf8変換書いた方が楽かもしれん。
あんまり褒められたコードとは思えんがな。

ちなみにSUSv4ではwchar_t is opaque objectと書いてありますが何か?

__UNICODE__とか__MBCS__とか__、C99の__STDC_ISO10646__を宣言するのは勝手だが、
MS-Win32のMSBC用バイナリ for Win9x/Me とUNICODE用バイナリ for NT/2k/XP のように
互換性の無いものになる & サポートしないplatformがあることは覚悟しとけ。



189 名前:188 mailto:sage [03/05/01 16:27 ID:N64qTJQU]
補足、Win32の場合__UNICODE__と__MBCS__で
リンクされる関数が別になるだけまだまし。
__STDC_ISO10646__の場合は同一インタフェースになるからな。
どこでブっ壊れるか判ったもんじゃない。

まあNetBSDのsys/cdefs.h内の__RENAMEマクロのような仕組みを使うとか
ldに細工するとかで、別シンボルを呼び分ける仕組みがlibcに用意されれば
Win32並に安全にはなる。




190 名前:山崎渉 mailto:(^^) [03/05/22 02:04 ID:p4opmoqv]
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

191 名前:login:Penguin [03/06/01 21:11 ID:Mv7aj8Tw]
Ruby-Gtk+-2には、Ruby-GTK+-1.2のときにあったCListは無いよね?
CListと同じことを別の方法でするには、なんかいい方法ありますか?

192 名前:動画直リン [03/06/01 21:13 ID:+qVihZQ+]
homepage.mac.com/hitomi18/

193 名前:160 mailto:sage [03/06/01 22:02 ID:JkScEVpY]
>>191
Gtk2ではCListのかわりに
GtkTreeViewを使うことになっている。

C言語での話になるが、GtkListStoreをつくってそのなかに
表のデータをほうりこんでやり、
別にGtkTreeViewヴィジェットを作成して
gtk_tree_view_column_new_with_attributesで表示上の列と
データ上の列を対応づけ(アトリビュートの"text"に何列目の値を
表示するかを指定する)
gtk_tree_view_set_modelで、先に用意したGtkTreeViewrと
GtkListStoreを対応づける

おそらくRuby-Gtkでも同じようにできると思われ

194 名前:login:Penguin mailto:sage [03/06/02 05:57 ID:l0w8IOx1]
で、何作るの?
何つかってもそれは個人の自由だから良いが
目的があるのと無いのでは習得速度に雲泥の差がある。
最低限のライブラリの使い方を覚えたらさっさgladeでも使って
組んだ方が良いよ。
目的が無いとすぐ飽きるし飽きると忘れる、結局無駄な時間を過ごした事になる。
ある程度長い時間使ってないとモノにならない。
見た目にしろlibgtk自体いしろ結局”ガワ”でしかないのだから
ちゃんと日本語化されてるなら後は中身に心血を注ごう。

cだからめんどくさそうとか言う奴はgtk,gdk,glibのチュートリアルをだいたい
どんな事ができるかざっと眺める位にして後はgladeつかえ。


195 名前:191 mailto:sage [03/06/02 20:31 ID:H7/+JInF]
>>193=160
Ruby-GNOME2のソースについてたサンプルに、GtkTreeViewもありました。
どうやら、説明してくれた通りのようです。
ありがとうございました

>>194
MPlayerのフロントエンドを作ろうかと...
飽きないように、まったり作ろうと思ってます。

glade使ってますよ。便利ですね、あれは。
頭の中でゴチャゴチャ考えるのがいかに非効率的かわかります(^^;

196 名前:login:Penguin mailto:sage [03/06/05 00:27 ID:NeWdmQAa]
>>195
mplayerのフロントエンドなら2つ3つあるみたいだけどそれとどういう差別化をす
んの?
俺としてはフロントエンドによる速度低下を使い勝手が上回るような奴を希望。

197 名前:login:Penguin mailto:sage [03/06/08 11:46 ID:h1K8ATYr]
GTKで何か作りたいけどWinみたいにGUI主体じゃないから
作りたいものがない・・・
こういうツールが欲しいとかなんかないですか?

198 名前:login:Penguin mailto:sage [03/06/08 12:18 ID:NVYlBdnZ]
>>197
家計簿ほすぃ

199 名前:197 mailto:sage [03/06/08 17:11 ID:h1K8ATYr]
家計簿ですか、、Linuxで家計簿付ける人っているのだろうか。(^^;
需要があるかどうかわかりませんが勉強かねてそれらしいの作ってみます。



200 名前:login:Penguin mailto:sage [03/06/08 18:19 ID:TUPg9XW4]
>>199
>>198じゃないけどモノによっては期待する。
今OOo使って家計簿つけてるんだけど、なんかイマイチ。
機能を絞り込んだ「一人暮らしの男のための家計簿」みたいな感じだと俺は使うと思う。

201 名前:197 mailto:sage [03/06/08 21:38 ID:NVYlBdnZ]
>>199
>>200の「一人暮らしの男のための家計簿」ようなやつがほしい。

#さらに完成度が高まると、主婦層を狙ったキラーアプリにもなる!

202 名前:login:Penguin mailto:sage [03/06/13 15:25 ID:bpko5Clf]
aunjuta って内蔵エディタ以外のエディタ指定できますか?
なんか、そういう設定項目が見つかりません。


203 名前:197 mailto:sage [03/06/14 07:43 ID:aLrsfyXo]
>>200
OOoみて公開するの躊躇ったんですが、せっかく作ったので公開します。(^^;
# めちゃくちゃシンプルな家計簿ですが…。
gtk2ch.hp.infoseek.co.jp/

UNIXプログラムは今回が初めて&一週間そこらで作ったのでヘタレなのはご勘弁ください。。
# あぁなんか叩かれそうだ…。


204 名前:login:Penguin mailto:sage [03/06/16 23:41 ID:qOFJTntY]
見れん >>203

205 名前:login:Penguin mailto:sage [03/06/17 00:48 ID:rQFVPuSz]
ぢつは>>203がアクセスできるうちに手にいれたのだが
src/menu.cpp:40: invalid conversion from `void*' to `gchar*'
src/menu.cpp:40: invalid conversion from `void*' to `void (*)()'
っていうのが9回くらい出た後に

src/menu.cpp: function 内の `void print_hello(void*, unsigned int,
GtkWidget*)':
src/menu.cpp:63: invalid conversion from `void*' to `GdkEvent*'
となってコンパイルできない。

gcc-3.2.2-5
gtk2-2.2.1-4
glib2-2.2.1-1

直してからカキコしようかとも思ったが、
あまりカキコせずにいるのもなんかなーと思ったので一応。

206 名前:login:Penguin mailto:sage [03/06/30 20:36 ID:yw9J/DOE]
197どこ逝った

207 名前:login:Penguin mailto:sage [03/07/01 00:52 ID:NjIY7kth]
    age       テモ      イイ?
  ∧_∧     ∧_∧   ∧_∧ 
 ( ・∀・ ∩   ( ・∀・)  (  ・∀)
⊂    ノ  ⊂ ⊂  )  (  (_`つ
 ,(__つ    < < <   > 〉\ \
  し'      (_(_)  (__) (__)

208 名前:login:Penguin mailto:age [03/07/10 02:20 ID:h0xkhYEg]
どなたか助けて下さい。

gtkhtmlの、src/gtkhtml.cの2670行目くらいにある

gtk_html_im_preedit_changed_cb (GtkIMContext *context, GtkHTML *html){
g_warning ("preedit changed callback: implement me");
}
をちゃんと実装したいのです。(このメソッドは現在CVSから取ってきた
物でも実装されてません)
目的は、evolutionで日本語メールを書く時に、XIM(or IIIMF)経由で入力すると
確定前の変換中の文字が見えないのを直したいのです。

docs.linux.cz/gtk/gtkimcontext.html#GTK-IM-CONTEXT-GET-PREEDIT-STRING
ここらへん見ながらいろいろいじったのですが、CもGTKも全く分らないため、
私には手が出せそうにありません。
よろしくお願いします。

209 名前:login:Penguin mailto:sage [03/07/10 11:29 ID:cUIBJ5ZH]
>>208
「いろいろいじった」のなら手は出せてるという事。
そんなに心配せず、勇気を持ってhackしれ。

俺はそっち専門じゃないので力になれないがとりあえず、
ちゃんと未確定文字が見えてる非gtkhtmlのアプリのソースを
漁るとか、im-module関係のプロダクトのソースをのぞくとか。

あるいは、gnome-devel at gnome.gr.jpあたりで「格闘してます」
ていう話を出せば、助け舟出してくれる人もいるかも。



210 名前:login:Penguin mailto:sage [03/07/12 10:58 ID:5xq0Wvrh]
GTKもWideStudioも見た目がダサダサなんですが、もう少しマシなのありませんか?
ソースあるんだから自分でいじれ とかは無しでお願いします

211 名前:login:Penguin mailto:sage [03/07/12 14:06 ID:CNiFHab+]
具体的にどの部分か書かないと意味分かんねーぞゴルァ。
けどツールキットとして見た目がダサい、ってことなら
GTKのテーマ使えば変え放題だと思うんだけど。

212 名前:login:Penguin mailto:sage [03/07/12 14:52 ID:4FR+yimT]
言いたいのは>>75-78と同様のことでした
Windows標準色に慣れきってるので随分違和感があるんだよなぁ・・・テーマ書くのめんどくさいし

213 名前:login:Penguin mailto:sage [03/07/12 15:07 ID:2HSyDTV2]
>>212
すごいな。
自分が慣れてないものは「ダサい」とみなしてしまうのか。

これでも入れとけ。
themes.freshmeat.net/projects/trueblue/

214 名前:211 mailto:sage [03/07/12 15:08 ID:CNiFHab+]
>>212
そんなあなたにGTK-Wimp。
ttp://gtk-wimp.sourceforge.net/
それ以外でも、Win9x風味のならデフォルトで入ってるよね。

気に入らなきゃ
ttp://themes.freshmeat.net/
にでも行ってらっしゃい。

ってすげースレ違いの予感。

215 名前:login:Penguin mailto:sage [03/07/12 15:09 ID:CNiFHab+]
>>213
>>214
擦れ違い…

216 名前:login:Penguin mailto:sage [03/07/12 15:12 ID:3e213sQq]
俺はダイアログでESC押した時とかEnter押した時なんかの挙動のほうが気になるんだけど。
変更可能?ESCで閉じたりとか

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;}







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

前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