[表示 : 全て 最新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/

145 名前:login:Penguin mailto:sage [2008/12/27(土) 12:41:23 ID:6Qaozst9]
ふつーに使ってる。フォントの取り扱いがプラットフォーム中立にできればなおいいのだが。

146 名前:login:Penguin mailto:sage [2008/12/27(土) 13:12:28 ID:IS4Ugvd/]
Cairo のフォント描画は Windows 上だとジャギが目立つ。Linux 上では問題無し。
何か設定がいるのかしら。

147 名前:login:Penguin mailto:sage [2008/12/27(土) 20:23:11 ID:B/jsjdnT]
普通ベクトル・グラフィクスにジャギーは発生しない

なにか間違ってることは間違いない

148 名前:login:Penguin mailto:sage [2008/12/27(土) 20:43:22 ID:6XGFKeOe]
>>144
速くなるって、なんかベンチの結果でもあんの?
skiaを用いているgoogle chromeのcanvasが爆速という話なら聞いたことがあるが

>>146
普通にcairoをコンパイルすると、Windowsではcairo-win32-font.cが使われる
これは普通にGDIを用いているので、普通のWindowsアプリのフォントの
レンダリングと全く同じ結果になる
一方LinuxではFreeTypeが使われる

149 名前:login:Penguin mailto:sage [2008/12/27(土) 21:26:06 ID:mPWXe8Aq]
a

150 名前:login:Penguin mailto:sage [2008/12/27(土) 22:20:00 ID:B/jsjdnT]
>>148
firefox2とfirefox3の速度比較は
確証を裏づけるものにはならないか?

一般的にラスター描画よりベクトル描画の方がデータ数が少なく、描画速度は速いと言われているし


ところでskiaて何?

151 名前:login:Penguin mailto:sage [2008/12/28(日) 10:40:10 ID:xJesvUS3]
mexo
hanaxo

152 名前:login:Penguin mailto:sage [2008/12/28(日) 11:37:59 ID:5NoVhFnO]
>>145-146
フォント描画にはPangoを使えばいいんじゃないの?


153 名前:login:Penguin mailto:sage [2008/12/29(月) 18:19:47 ID:qsmFI5vI]
>>150
ttp://www.hyuki.com/yukiwiki/wiki.cgi?VectorDrawing

skiaは
google chrome skia
あたりでぐぐれ



154 名前:login:Penguin mailto:sage [2008/12/29(月) 22:41:52 ID:mdZmAujL]
>>153
これはハードウェア実装のOpenGLによるベクタ描画と
ソフトウェア実装のcairoによるベクタ描画の実験結果だな...

ハードウェア実装だとプラットフォームやハードウェア環境の影響を受けるが
ソフトウェア実装より格段に速度を上げられる

だからこそcairoにもOpenGLによるハードウェアアクセラレーションのサポートがあるわけだが...

でもビデオカードやらのGPU性能依存というのは
それこそ3DデスクトップやらVistaやらのPC肥大化狂騒曲じゃないのか?

ハードウェア実装を否定してるわけじゃないが
これはアリなの?
そこのところどうなんよ?

155 名前:login:Penguin mailto:sage [2008/12/29(月) 23:04:54 ID:qsmFI5vI]
>>154
んー
それを言うなら、GDIだってハードウェアアクセラレートされていて、
GDIがソフトウェアでエミュレートされるようになったWindows Vistaでは
実際描画が遅いのなんのと騒ぎになっていたわけだろ

cairoは、下のレイヤの上に乗っかって、アンチエイリアス描画を行うから、
一般的には下のプリミティブをそのまま用いるのではなく、
pixmapの上にソフトウェアレンダリングを行う形になる
だから結果は綺麗だが、それが高速化につながるという意見はさっぱりわからんね

皮をかぶせれば、ポータビリティは高まるかもしれんが、速くなるわけがないよ

個人的にちょっと試した限りでは、少なくともWindowsで普通にコンパイルした
cairoは、遅いといわれるGDI+よりもまだ遅いぐらいだ
同種の競合ソフトのaggと比べても、やはり遅いな

156 名前:login:Penguin mailto:sage [2008/12/30(火) 02:24:04 ID:chmi7ht1]
cairoの下のレイヤって何?
cairoはGTK+/GDKやXlibの上にはない
そもそもpixmapのようなラスタデータ上にベクタデータを
ラスタライズしても綺麗な結果にはならない


Vistaが重い一番の理由はVistaのコアが4Gとかのせいじゃなかったか?

157 名前:login:Penguin mailto:sage [2008/12/30(火) 03:17:23 ID:xp1VmVKW]
>>156
> cairoの下のレイヤって何?
> cairoはGTK+/GDKやXlibの上にはない

????
cairoは何らかのバックエンド(サーフェス)の上で描画を行うわけだが
一体何を言ってるんだ

> そもそもpixmapのようなラスタデータ上にベクタデータを
> ラスタライズしても綺麗な結果にはならない

ビットマップディスプレイに、ラスタデータ以外をどうやって描画するんだ?
ベクタグラフィックスだろうが3Dだろうが、ビットマップディスプレイに
描画するときは、*必ず*2Dラスタデータに落とす(=レンダリング)
しなければ、描画のしようがないのだが、そんなことも知らないのか?

レンダリングをソフトウェアで行うか、ハードウェアで行うかは
実装の問題だがな

158 名前:login:Penguin mailto:sage [2008/12/30(火) 03:38:55 ID:F99IYk+S]
他の領域に落としたらそれが遅くなる原因だしな。
絵の処理なら、cpuから見えるメモリ領域のビットマップに転送が遅くなる原因のno1。
cairoは、その辺がすべてバックエンド任せでさらにメモリ上でいじるので、
普通に使うと遅いソフト(cpu)処理の部類に分類される。

てか、cairoの中身でも描画なんかは一切触れずに、cairo_surface_tで共通化とでしか使ってないと思うんだけどどう?

159 名前:login:Penguin mailto:sage [2009/01/04(日) 04:31:10 ID:OlEL3WLc]
待てばcairoの日和あり

160 名前:login:Penguin mailto:sage [2009/01/04(日) 09:09:03 ID:Ls6s3Y+a]
で?

161 名前:login:Penguin [2009/01/08(木) 14:49:56 ID:25IYEPJi]
初めて拝見するが、
ここの良スレ度にびっくりした。

162 名前:login:Penguin [2009/01/11(日) 10:45:28 ID:G50GhRZF]
「右」キーにアクションをバインドしたいんですが、どうすればできますか?
今は仕方なく
gtk_widget_add_accelerator (foo, "activate", accel_group,
GDK_Right, GDK_MODIFIER_MASK,
GTK_ACCEL_VISIBLE);
のようにしてますが、実際は GDK_MODIFIER_MASK 無しで「右」キーのみ
で作用するようにしたいんです。

163 名前:login:Penguin mailto:sage [2009/01/12(月) 22:30:23 ID:Ap11sUPz]
ところでさ、なんでGtkTreeViewColumnに
gtk_tree_view_column_get_widthはあるのにgtk_tree_view_column_set_widthはないの?
なんでカラムの幅を非常にまわりくどい方法でセットする事しかできないんだろう。



164 名前:login:Penguin mailto:sage [2009/01/13(火) 21:49:47 ID:4aexh9M5]
バカ除けのため

165 名前:login:Penguin mailto:sage [2009/01/14(水) 06:35:18 ID:ON4hZt79]
>>164
なにそれww

166 名前:login:Penguin mailto:sage [2009/01/14(水) 10:40:30 ID:hbYm8nJe]
>>163
他のコラムに対する影響を考えないといけないからでないの? 推測だけど

167 名前:login:Penguin [2009/01/19(月) 07:00:18 ID:Zkvelgln]
どうすればtoolbarを縦に位置させることができますか?


168 名前:login:Penguin mailto:sage [2009/01/19(月) 14:58:09 ID:rA2FfI0+]
ディスプレーをガタンとですね

169 名前:login:Penguin mailto:sage [2009/01/19(月) 15:05:50 ID:Zkvelgln]
>>168
???

170 名前:login:Penguin mailto:sage [2009/01/20(火) 05:28:26 ID:N3/xwV6v]
>>167
D&D

171 名前:login:Penguin mailto:sage [2009/01/20(火) 07:38:29 ID:eUZx4J2+]
>>168
ワロタ

172 名前:167 [2009/01/21(水) 13:15:59 ID:cRTwudVb]
>>168
真面目に答えていただけませんか?

>>170
詳しく教えてください。


173 名前:login:Penguin mailto:sage [2009/01/21(水) 16:47:39 ID:oi/rQuGm]
>>172
自分は真面目に調べたのか?



174 名前:login:Penguin [2009/01/21(水) 22:48:05 ID:zay9Vio9]
>>167
まず言語は何でプログラミングしてるの?
個人的には盛り上がって欲しいスレではあるのだけれど。
CでガリガリGTKアプリ書いてる人あんまりいないのかな…

175 名前:167 mailto:sage [2009/01/22(木) 01:25:28 ID:qMqmINP5]
>>174
C でやってます。

176 名前:login:Penguin mailto:sage [2009/01/22(木) 02:12:53 ID:N/oI0lI0]
>>175
set_orientationでvertical指定
詳しくはググれ



177 名前:login:Penguin [2009/01/23(金) 07:41:44 ID:Azeyn9TC]
Objective-C使ってます

178 名前:167 [2009/01/23(金) 13:07:07 ID:AEZO7GNu]
toolbar を縦(vertical)に配置することには成功したのですが、
menubar を縦(vertical)に配置する方法が見つかりません。

// 例えば、menubar に対しては gtk_toolbar_set_orientation と同様の関数が存在しません。

どうすればできるでしょうか?


179 名前:login:Penguin [2009/01/24(土) 17:41:53 ID:j3OrWlaN]
linuxデスクトップユーザーの特徴

@インストールしただけで選民思想
Aやっていることはwindowsと同じ。しかもめんどくさくなっただけ。
Bコマンド打ち込んでプロだと勘違い
C黙ってwindowsでも使ってろと間口を狭める
D素人がだのなんだのとwindowユーザーを馬鹿にする
Eカーネルいじればいいだろと無茶を要求
Flinux開発者とのずれを認識できていない
Gwineを使うくせにlinuxを再現しようとする動きがあるとたたく

       冫─'  ~  ̄´^-、
     /          丶
    /             ノ、
   /  /ヽ丿彡彡彡彡彡ヽヽ
   |  丿           ミ
   | 彡 ____  ____  ミ/
   ゝ_//|    |⌒|    |ヽゞ
   |tゝ  \__/_  \__/ | |    __________
   ヽノ    /\_/\   |ノ  /
    ゝ   /ヽ───‐ヽ /  /  linuxはめんどくさくて難しい分だけ、
     /|ヽ   ヽ──'   / <  自称プロが悦に浸るためのツールとして最高なんじゃないだろうかwww
    / |  \    ̄  /   \
   / ヽ    ‐-            ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

180 名前:167 [2009/02/01(日) 07:28:50 ID:lE4ur93H]
お前等、なにも知らないんですね。

181 名前:login:Penguin [2009/02/02(月) 10:47:56 ID:IIH5qxfd]
もともと閲覧者が少ないスレで
自分の欲しいタイミングで回答を得ようとしてるのが間違い

半年位待ってみろ

182 名前:login:Penguin [2009/02/02(月) 11:13:18 ID:6BkR0lwx]
>>181
では、LinuxでGUIを作るにはどのライブラリを使うのでしょう?

183 名前:login:Penguin mailto:sage [2009/02/02(月) 11:41:10 ID:J5ctVuxx]
* 女でLinux使ってる奴 -- pc11.2ch.net/test/read.cgi/linux/1224332593/355
355: login:Penguin [] 2009/01/19(月) 12:20:24 ID:Zkvelgln

私は女に一番受けのいいlinuxディストリビューションを知っている。


* Gnome vs KDE -- pc11.2ch.net/test/read.cgi/linux/1185851003/136
136: login:Penguin [] 2009/02/01(日) 11:19:51 ID:lE4ur93H

今 C の gtk+ 使ってアプリ書いてるけど、
血反吐でそうなぐらい面倒くさい。。。
だれかもっと使いやすいライブラリ作ってくれ。。。


* 女でLinux使ってる奴 -- pc11.2ch.net/test/read.cgi/linux/1224332593/417
417: login:Penguin [sage] 2009/02/01(日) 12:29:52 ID:lE4ur93H
>>416
発音は「テック」。
英語ができない日本人はなぜか「テフ」と言っている。
偽の発音を使い続けるのはそろそろ止めにしないか?

本当は「イケマン」と言うべきなのに、「イケメン」
と言う日本人。もうね、アホかと。


* 女でLinux使ってる奴 -- pc11.2ch.net/test/read.cgi/linux/1224332593/415
415: login:Penguin [sage] 2009/02/01(日) 11:05:18 ID:lE4ur93H
>>413
○ tex = テック
× tex = テフ



184 名前:167 mailto:sage [2009/02/02(月) 13:03:00 ID:9NCOwk9m]
>>183
変な事言ってるように仕向けたいんだろうけど、
lE4ur93Hは正当な事言ってんじゃん。

185 名前:login:Penguin mailto:sage [2009/02/02(月) 20:46:11 ID:2frQG7fR]
ただの荒らしコピペに反応すんなよ
NG登録されて回答もらえなくても知らんぜ

186 名前:login:Penguin [2009/02/10(火) 20:32:40 ID:8DV6Um/n]
ファイル選択ダイアログを、ターミナルから閉じたくて、
下の処理を入れたのですが、ダイアログを閉じた後、応答が無くなります。
(GUIでキャンセルボタンや×をクリックすると正常に閉じれる)
どうすれば、ターミナルから正しく閉じれるかを教えてください。

GtkWidget *filew = NULL;
void FileSelection::destroyFileSelection()
{
  status = false;
  gtk_widget_destroy(filew);
}

187 名前:login:Penguin mailto:sage [2009/03/29(日) 11:33:55 ID:JOkFFCq+]
Windowsでは、自分以外のプロセスが管理しているウィンドウのハンドル(動作中のOS上で
ユニークな識別番号)を得ることができれば、そのウィンドウのサイズやデスクトップ上での
位置などを好きにいじくったりできるのですが、LinuxのGTK+(またはGNOMEもしくはX Window
System)にそのようなAPIのようなものはありますか?

188 名前:187 [2009/03/29(日) 11:38:55 ID:JOkFFCq+]
すみません、ageさせてください。

なにがやりたいかと言うと、特定の文字列をウィンドウタイトルに含むトップレベルの
ウィンドウに対して、デスクトップ上での表示位置やサイズを変更したりといったことです。

189 名前:187 mailto:sage [2009/03/29(日) 20:36:19 ID:JOkFFCq+]
自己レス

libwnckてのが関係ありそうだが、Rubyから使えるんだろうか。Pythonにはそのための
モジュールが既にあるみたいなんだけど。今Ubuntu起動できないからよくわからん。

190 名前:login:Penguin mailto:sage [2009/03/29(日) 21:12:45 ID:Afl3tAxS]
>>187
wmctrl コマンドのソースでもみればいいんじゃね?

191 名前:187 mailto:sage [2009/03/30(月) 10:56:06 ID:+ewzli1b]
レスありがとうございます。こんなコマンドがあったんですね。自分の目的にはこれを
利用するだけで十分そうですが、ソース読むのも勉強になって面白そうですね。

結果的にスレ違いになってしまってすみません。

192 名前:login:Penguin [2009/04/23(木) 11:32:24 ID:rK6Swnpx]
だれか clispからgtkを使う方法を教えてください


193 名前:login:Penguin [2009/07/10(金) 07:43:15 ID:jUacI/UD]
VMwareがGtk産だったとは



194 名前:login:Penguin [2009/07/17(金) 23:36:58 ID:hHQTz6KG]
本気で聞く
おまえらはどうやってGTK+勉強なさいましたか?

195 名前:login:Penguin mailto:sage [2009/07/18(土) 13:41:00 ID:MyXAq5ze]
>>194
GTK+ソース付属のexamples+demosを動かして遊ぶ

GTK+ソース付属のtutorialを一通りこなす web: library.gnome.org/devel/gtk-tutorial/stable/

doc/reference読み方を覚える

小さいアプリをsourceforgeとかfreshmeetで見つけてきて参考にする

irc.freenode.netの#gtk+とかメーリングリストで質問

196 名前:login:Penguin mailto:sage [2009/07/18(土) 15:41:41 ID:0IAjxnq5]
難しそうですね
断念しました

ありがとうございませんでした

197 名前:login:Penguin [2009/07/18(土) 18:31:08 ID:NxC2oWbI]
何をどう見たら難しそうなんだよ?
ゆとりか?
英語にびびるな!

サンプルソースなんてコピればコンパイルできる

WindowsでもLinuxでもCode::Blocks使えばそれほど
コンパイルできる開発環境の準備には手間取らない

198 名前:login:Penguin mailto:sage [2009/07/18(土) 19:30:03 ID:+ryPUP7D]
ママが一から十まで教えてくれなきゃイヤなんじゃね

199 名前:login:Penguin [2009/07/18(土) 20:00:15 ID:ghQ1gSty]
pygtkがいちばんやさしくてにょろにょろ

200 名前:login:Penguin mailto:sage [2009/07/18(土) 20:39:03 ID:0IAjxnq5]
>>197
そうですね
サンプルソースをコピーして勉強したことにしようと思います

>>198
そうですね
パパじゃいやです

>>199
そうですね
数十年ぶりにしゃぶりたいです

>>195
俺、本気になります!真面目に勉強します!
ありがとうございました!!

201 名前:login:Penguin mailto:sage [2009/07/19(日) 01:03:57 ID:vKaqQMs4]
携帯とか組みこみでGTK+を使っているものって何かある?
海外では結構あるみたいだけど、日本だと聞かないよな。

202 名前:login:Penguin mailto:sage [2009/07/24(金) 16:52:07 ID:99ViSCNs]
>>201
書いてないだろ常考

203 名前:login:Penguin mailto:sage [2009/07/24(金) 17:15:55 ID:aH4gErtS]
>>202は日本語に不自由な方?



204 名前:login:Penguin mailto:sage [2009/07/24(金) 17:48:23 ID:99ViSCNs]
うん

205 名前:login:Penguin mailto:sage [2009/07/24(金) 23:12:42 ID:6YmCBCzn]
GTKはもう少しで消滅する
googleの新しいソリューションに置換される

206 名前:login:Penguin mailto:sage [2009/07/25(土) 04:36:37 ID:00SH8Kn9]
Chrome OS の事か?
確かにウィンドウシステムは時前のものを用意するらしいけど、
どうなんだろうね。そもそもソースが公開されるかどうかも怪しい。
それに、GTK+の培ってきた年月を一気に越えられるとも思えないし。


207 名前:login:Penguin mailto:sage [2009/07/25(土) 05:18:20 ID:corW1o/2]
グーグルは基本Qtじゃないの。
でも今更ブラウザの下の層なんか関係ないはず。
HTML5 でアクティブデスクトップっていう懐かしいお話をもう一度やるんでしょ

208 名前:login:Penguin mailto:sage [2009/07/25(土) 06:22:09 ID:00SH8Kn9]
まぁ、googleはWEBアプリが基本だから、そうなるのかね。
ただ、この事前の大袈裟なプロパガンダはMSに似てるなw


209 名前:login:Penguin mailto:sage [2009/07/25(土) 09:19:09 ID:wdRQEHVW]
GTKスレはあるのにQTスレがないのはなんでだろう〜

210 名前:login:Penguin mailto:sage [2009/07/25(土) 10:58:46 ID:QoKls/xb]
>>209
ム板にあるからじゃないか?

211 名前:login:Penguin [2009/07/25(土) 11:39:56 ID:IOPwPp1+]
>>209
pc12.2ch.net/test/read.cgi/tech/1239996587/

どっちかと言うとQtの方が活発

212 名前:login:Penguin mailto:sage [2009/08/23(日) 00:41:14 ID:cXbPjTOU]
初歩的な質問です。

Xを使わずにフレームバッファを使うGTK+アプリをリンクする際は、どのgtkライブラリをリンクすればいいのでしょうか?
Xを使う場合だと以下のようなリンクオプションになると思いますが、フレームバッファを使用する場合のリンクオプションを教えてください。
$ pkg-config gtk+-2.0 --libs
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  


213 名前:login:Penguin mailto:sage [2009/08/23(日) 01:17:03 ID:oYmg5B0H]
Xを使わずにフレームバッファを使うGTK+とやらはインストールしてあんの?



214 名前:212 mailto:sage [2009/08/23(日) 02:02:51 ID:cXbPjTOU]
debian上からaptitudeでlibgtk2.0とlibgtk2.0-dev関連のライブラリをインストールしてあります。


215 名前:login:Penguin mailto:sage [2009/08/23(日) 06:49:16 ID:Do4KpMOi]
Xを使わないと動かんよ。
Gtk+はXLibの面倒臭さを軽減するためのライブラリに過ぎんのだから。
Windowsに移植する場合にもXLib相当のが要る

216 名前:login:Penguin mailto:sage [2009/08/23(日) 09:20:44 ID:WBxszhFm]
>>214
それはX用のパッケージ。
フレームバッファ用のGTKはlibgtk-directfb-2.0-*だぞ。

>>215
知ったか乙

217 名前:212 mailto:sage [2009/08/23(日) 10:44:26 ID:cXbPjTOU]
>>216
そうなんですか!

以前ググったら下記サイトのフレーズが目に留まり、てっきりDirectFBじゃなくてもフレームバッファでも利用可能なのだと思ってました。 orz
ttp://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch3
>GTK+
>GNOME アプリケーションでユーザインターフェースを構築するのに利用される基礎的なライブラリで,XWindow System 上で動作します(www.gtk.org/).フレー>ムバッファやDirectFB 上などでも動作するように設定することができます.

ご教示いただいたライブラリをインストールして確認してみます。


218 名前:login:Penguin mailto:sage [2009/08/29(土) 19:05:24 ID:7RbftsXX]
libgrade+gtkmmをいじって遊んでいるのだけど
メインウィンドウからダイアログのようなウィンドウを開く
サンプルは何処かに有りませんでしょうか

219 名前:login:Penguin mailto:sage [2009/08/29(土) 21:56:36 ID:OBRUPUZc]
>>218
gtkmm-demo を起動してみては?
結構いろんなサンプルがあるな > gtk-demo pygtk-demo gtkmm-demo


220 名前:login:Penguin mailto:sage [2009/08/30(日) 01:00:57 ID:XE+apBqt]
>>219
libgladeを使っていない様です。

221 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 08:33:18 ID:Czh9S0PJ]
>>220
libgladeは使われなくなる方向だから、、、って思ったけど、
gtkmmだとBuilderを使ったサンプルが無いな。。。
おそらく、以下はチェックされていると思うけど、
gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-libglademm.html
複数のwidget idを使っているサンプルは無いですね。。。
Gnome::Glade::Xml::create()して、get_widget()して、
signal処理してrun()する流れは同じだと思うけど、
丁度良いサンプルは見つからないな。。。

222 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 08:51:11 ID:IHJ1WvuS]
>>221
有難うございます。小汚い書き方で何とか表示だけはするようになりました(いろいろ問題が有るけど)
綺麗に書いてあるサンプルなど見ればもう少しましになるかと思ってたのです。
libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
今は何を使う方向なんでしょうか?

223 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 10:37:24 ID:Czh9S0PJ]
>>222
> libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
> 今は何を使う方向なんでしょうか?
Glade 3.6.7のglade-3を起動したら、プロジェクトのオプションってダイアログが開く。
そこには、プロジェクトのファイル形式でGtkBuilderとLibgladeを選択できる。
今後は、GtkBuilderがデフォルトになって、ファイル接尾子が.uiになる。

サンプルはgtk-demoのBuilderのソースを見るとわかると思う。
そして、gtkmmのサンプルが無いな〜って話。

live.gnome.org/TwoPointTwentyseven/Platform
のUpcoming Deprecationsで非推奨になっているものは、消えゆく運命。



224 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 11:08:36 ID:IHJ1WvuS]
>>223
Debianのlennyを使っているのでAnjuta 2.4.2、Glade 3.4.5です・・・
GtkBuilderのサンプル探しの旅に出たいと思います。有り難うございます

225 名前:login:Penguin mailto:sage [2009/08/31(月) 02:59:20 ID:WV5KE7UC]
glade も GtkBUilder もほとんど同じだから、リファレンスを見ながらで
書けると思うけど。


226 名前:login:Penguin mailto:sage [2009/08/31(月) 14:47:43 ID:4XJ92u20]
GtkBUilderを使ったGtk::Drawingariaのサンプルを作ろうとしたんだけど
途端に分からず・・・
イベントとかどうやってつなげたらいいのだろう
イベント処理で書かないと無理だよね?

227 名前:login:Penguin mailto:sage [2009/09/01(火) 01:49:35 ID:o0MV2wSR]
とりあえずこんな感じか。
(ちなみに C++ は main に限って return は不要。これ豆知識な)

int main(int argc, char** argv)
{
Gtk::Main kit(argc, argv);

AppWindow::Initialize(argc, argv);

Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file(AppWindow::GLADE_FILE_NAME);

AppWindow* app_window = 0;
builder->get_widget_derived(AppWindow::WINDOW_NAME, app_window);

kit.run(*app_window);
}


228 名前:login:Penguin mailto:sage [2009/09/01(火) 01:51:56 ID:o0MV2wSR]
class AppWindow : public Gtk::Window
{
public:
static const char* GLADE_FILE_NAME;
static const char* WINDOW_NAME;

static void Initialize(int argc, char** argv);

AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
virtual ~AppWindow();

protected:
void on_quit_action_activated();

private:
const Glib::RefPtr<Gtk::Builder>& m_builder;

Glib::RefPtr<Gtk::Action> m_act_quit;
};


229 名前:login:Penguin mailto:sage [2009/09/01(火) 01:58:01 ID:o0MV2wSR]
const char* AppWindow::GLADE_FILE_NAME = "app_window.glade";
const char* AppWindow::WINDOW_NAME = "window1";

void AppWindow::Initialize(int argc, char** argv)
{
// 初期化なんかをここで

// OpenGL の描画を独立して(別ウィンドウで)出来るようにしてみる
Glib::signal_idle().connect(sigc::bind(sigc::ptr_fun(PollEvent), DrawGL));
}

AppWindow::AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
: Gtk::Window(cobject), m_builder(builder)
{
m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));

m_act_quit->signal_activate().connect(mem_fun(*this, &AppWindow::on_quit_action_activated));

move(0, 0);
resize(240, 720);
}

AppWindow::~AppWindow()
{
}

void AppWindow::on_quit_action_activated()
{
Gtk::Main::quit();
}


230 名前:login:Penguin mailto:sage [2009/09/01(火) 02:02:59 ID:o0MV2wSR]
ただの Gtk::Window で悪いけど Gtk::Drawingaria でも大差ないはず。
app_window.glade は GtkBuilder 形式の xml ね。
大体こんな感じが典型的な処理だと思うよ。


231 名前:login:Penguin mailto:sage [2009/09/01(火) 20:43:11 ID:LcijR9gh]
>>226
> イベントとかどうやってつなげたらいいのだろう
> イベント処理で書かないと無理だよね?
drawareaをeventboxの上に乗せないとダメじゃなかったっけ?
# と、テストもせずにカキコ

232 名前:login:Penguin mailto:sage [2009/09/01(火) 20:45:43 ID:azH81sw2]
有難う、私が書いていたのと大分違うみたい
少しずつ見てみるよ

233 名前:login:Penguin mailto:sage [2009/09/02(水) 01:45:20 ID:XY5vbVWT]
ちなみに AppWindow みたいに Gtk::Widget を継承している場合は、単に

class AppWindow : public Gtk::Window
{
public:
virtual void on_show()
{
cout << "表示された" << endl;
}
};

みたく仮想関数をオーバーライドするだけでいいんだけどね。

ただ、これもトップレベルのウィンドウのイベントしか反応できないから、
>>229 のコンストラクタみたく cast_static なんかでボタンとか取得して、
自分のメソッドを connect していくのが C++ っぽい書き方な気がする。




234 名前:login:Penguin mailto:sage [2009/09/02(水) 13:02:19 ID:Wp36mia7]
>>227
コンパイルしてみたけどエラーで落ちてしまったよ

m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
これってどんな意味かな?

235 名前:login:Penguin mailto:sage [2009/09/02(水) 18:54:23 ID:Wp36mia7]
結局こんな感じに書いてつながったけど、何かモヤモヤするよ
複雑になってくると小汚くなりそうだなー

builder_xml->get_widget( "drawingarea1", daria1 );
daria1->signal_button_press_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_press ) );
daria1->add_events( Gdk::BUTTON_PRESS_MASK );
daria1->signal_expose_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_expose_event ) );
daria1->add_events( Gdk::POINTER_MOTION_MASK );
daria1->signal_motion_notify_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_motion_notify_event ) );
daria1->signal_realize().connect( sigc::mem_fun( *this, &MyDialog::on_daria_realize ) );

236 名前:login:Penguin mailto:sage [2009/09/02(水) 19:25:12 ID:Wp36mia7]
class MyDialog
{
Glib::RefPtr<Gtk::Builder> builder_xml;
Gtk::DrawingArea* daria1;

public:
MyDialog();
virtual ~MyDialog(){}
bool on_daria_press(GdkEventButton* event);
bool on_daria_expose_event( GdkEventExpose* event );
bool on_daria_motion_notify_event( GdkEventMotion* event );
void on_daria_realize();
};


237 名前:login:Penguin mailto:sage [2009/09/03(木) 02:34:12 ID:6mgKfH1n]
>>234
> m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
> これってどんな意味かな?
これは GtkAction を取得するんだけど get_object は Glib::RefPtr<Glib::Object> を返す
からキャストが必要になるけど、ドキュメントには cast_static を使うようにって書いて
あるからこうしてる。

当然 app_window.glade に "action1" という名前の GtkAction がないと駄目だよ。
それで落ちてるんじゃない?

238 名前:login:Penguin mailto:sage [2009/09/03(木) 02:38:43 ID:6mgKfH1n]
>>235
別にそんな小汚くはないと思うけど。大体そんなもんだよ。

239 名前:login:Penguin mailto:sage [2009/09/03(木) 02:47:30 ID:6mgKfH1n]
>>236
MyDialog は Gtk::DrawingArea を継承してもいいかも。
それと on_* は protected の方がいいよ。


240 名前:login:Penguin mailto:sage [2009/09/03(木) 12:32:06 ID:jVnTHMiE]
>>234
適当なGtk::WindowのGUIを作って読み込ませたんだけど
それがうまく行ってなかったのかもしれない
色々有難う

GtkBuilderを使わない方も少しいじってみるよ

241 名前:login:Penguin mailto:sage [2009/09/06(日) 14:05:15 ID:aXigLrxm]
Gtk::SpinButtonを浮動小数点表示にする事は出きますでようか?

242 名前:login:Penguin mailto:sage [2009/09/14(月) 13:21:24 ID:kBmevVmP]
cairommでバックバッファを使った描画はどうすれば良いのでしょうか?
save(),restore()は少し違うような気がして・・・

243 名前:login:Penguin mailto:sage [2009/09/15(火) 17:55:42 ID:1BtVuQj7]
GTK+onDirectFBをインストールしようと思ってDirectFBのサイトに行こうとしたら
なぜか繋がらないんだけど誰か教えr・・・教えてください。



244 名前:login:Penguin [2009/09/15(火) 17:56:26 ID:1BtVuQj7]
sageちまった

245 名前:login:Penguin [2009/09/15(火) 17:59:06 ID:1BtVuQj7]
ttp://www.directfb.org/

URLも貼っておきます。
繋がらない、マジで誰か教えてください






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

前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