X



トップページLinux
926コメント335KB

GTK+プログラミング

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

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

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

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

ハードウェア実装を否定してるわけじゃないが
これはアリなの?
そこのところどうなんよ?
0155login:Penguin
垢版 |
2008/12/29(月) 23:04:54ID:qsmFI5vI
>>154
んー
それを言うなら、GDIだってハードウェアアクセラレートされていて、
GDIがソフトウェアでエミュレートされるようになったWindows Vistaでは
実際描画が遅いのなんのと騒ぎになっていたわけだろ

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

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

個人的にちょっと試した限りでは、少なくともWindowsで普通にコンパイルした
cairoは、遅いといわれるGDI+よりもまだ遅いぐらいだ
同種の競合ソフトのaggと比べても、やはり遅いな
0156login:Penguin
垢版 |
2008/12/30(火) 02:24:04ID:chmi7ht1
cairoの下のレイヤって何?
cairoはGTK+/GDKやXlibの上にはない
そもそもpixmapのようなラスタデータ上にベクタデータを
ラスタライズしても綺麗な結果にはならない


Vistaが重い一番の理由はVistaのコアが4Gとかのせいじゃなかったか?
0157login:Penguin
垢版 |
2008/12/30(火) 03:17:23ID:xp1VmVKW
>>156
> cairoの下のレイヤって何?
> cairoはGTK+/GDKやXlibの上にはない

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

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

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

レンダリングをソフトウェアで行うか、ハードウェアで行うかは
実装の問題だがな
0158login:Penguin
垢版 |
2008/12/30(火) 03:38:55ID:F99IYk+S
他の領域に落としたらそれが遅くなる原因だしな。
絵の処理なら、cpuから見えるメモリ領域のビットマップに転送が遅くなる原因のno1。
cairoは、その辺がすべてバックエンド任せでさらにメモリ上でいじるので、
普通に使うと遅いソフト(cpu)処理の部類に分類される。

てか、cairoの中身でも描画なんかは一切触れずに、cairo_surface_tで共通化とでしか使ってないと思うんだけどどう?
0159login:Penguin
垢版 |
2009/01/04(日) 04:31:10ID:OlEL3WLc
待てばcairoの日和あり
0161login:Penguin
垢版 |
2009/01/08(木) 14:49:56ID:25IYEPJi
初めて拝見するが、
ここの良スレ度にびっくりした。
0162login:Penguin
垢版 |
2009/01/11(日) 10:45:28ID:G50GhRZF
「右」キーにアクションをバインドしたいんですが、どうすればできますか?
今は仕方なく
gtk_widget_add_accelerator (foo, "activate", accel_group,
GDK_Right, GDK_MODIFIER_MASK,
GTK_ACCEL_VISIBLE);
のようにしてますが、実際は GDK_MODIFIER_MASK 無しで「右」キーのみ
で作用するようにしたいんです。
0163login:Penguin
垢版 |
2009/01/12(月) 22:30:23ID:Ap11sUPz
ところでさ、なんでGtkTreeViewColumnに
gtk_tree_view_column_get_widthはあるのにgtk_tree_view_column_set_widthはないの?
なんでカラムの幅を非常にまわりくどい方法でセットする事しかできないんだろう。
0166login:Penguin
垢版 |
2009/01/14(水) 10:40:30ID:hbYm8nJe
>>163
他のコラムに対する影響を考えないといけないからでないの? 推測だけど
0167login:Penguin
垢版 |
2009/01/19(月) 07:00:18ID:Zkvelgln
どうすればtoolbarを縦に位置させることができますか?
0168login:Penguin
垢版 |
2009/01/19(月) 14:58:09ID:rA2FfI0+
ディスプレーをガタンとですね
0172167
垢版 |
2009/01/21(水) 13:15:59ID:cRTwudVb
>>168
真面目に答えていただけませんか?

>>170
詳しく教えてください。
0174login:Penguin
垢版 |
2009/01/21(水) 22:48:05ID:zay9Vio9
>>167
まず言語は何でプログラミングしてるの?
個人的には盛り上がって欲しいスレではあるのだけれど。
CでガリガリGTKアプリ書いてる人あんまりいないのかな…
0175167
垢版 |
2009/01/22(木) 01:25:28ID:qMqmINP5
>>174
C でやってます。
0176login:Penguin
垢版 |
2009/01/22(木) 02:12:53ID:N/oI0lI0
>>175
set_orientationでvertical指定
詳しくはググれ

0177login:Penguin
垢版 |
2009/01/23(金) 07:41:44ID:Azeyn9TC
Objective-C使ってます
0178167
垢版 |
2009/01/23(金) 13:07:07ID:AEZO7GNu
toolbar を縦(vertical)に配置することには成功したのですが、
menubar を縦(vertical)に配置する方法が見つかりません。

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

どうすればできるでしょうか?
0179login:Penguin
垢版 |
2009/01/24(土) 17:41:53ID:j3OrWlaN
linuxデスクトップユーザーの特徴

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

       冫─'  ~  ̄´^-、
     /          丶
    /             ノ、
   /  /ヽ丿彡彡彡彡彡ヽヽ
   |  丿           ミ
   | 彡 ____  ____  ミ/
   ゝ_//|    |⌒|    |ヽゞ
   |tゝ  \__/_  \__/ | |    __________
   ヽノ    /\_/\   |ノ  /
    ゝ   /ヽ───‐ヽ /  /  linuxはめんどくさくて難しい分だけ、
     /|ヽ   ヽ──'   / <  自称プロが悦に浸るためのツールとして最高なんじゃないだろうかwww
    / |  \    ̄  /   \
   / ヽ    ‐-            ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0180167
垢版 |
2009/02/01(日) 07:28:50ID:lE4ur93H
お前等、なにも知らないんですね。
0181login:Penguin
垢版 |
2009/02/02(月) 10:47:56ID:IIH5qxfd
もともと閲覧者が少ないスレで
自分の欲しいタイミングで回答を得ようとしてるのが間違い

半年位待ってみろ
0182login:Penguin
垢版 |
2009/02/02(月) 11:13:18ID:6BkR0lwx
>>181
では、LinuxでGUIを作るにはどのライブラリを使うのでしょう?
0183login:Penguin
垢版 |
2009/02/02(月) 11:41:10ID:J5ctVuxx
* 女でLinux使ってる奴 -- http://pc11.2ch.net/test/read.cgi/linux/1224332593/355
355: login:Penguin [] 2009/01/19(月) 12:20:24 ID:Zkvelgln

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


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

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


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

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


* 女でLinux使ってる奴 -- http://pc11.2ch.net/test/read.cgi/linux/1224332593/415
415: login:Penguin [sage] 2009/02/01(日) 11:05:18 ID:lE4ur93H
>>413
○ tex = テック
× tex = テフ
0184167
垢版 |
2009/02/02(月) 13:03:00ID:9NCOwk9m
>>183
変な事言ってるように仕向けたいんだろうけど、
lE4ur93Hは正当な事言ってんじゃん。
0185login:Penguin
垢版 |
2009/02/02(月) 20:46:11ID:2frQG7fR
ただの荒らしコピペに反応すんなよ
NG登録されて回答もらえなくても知らんぜ
0186login:Penguin
垢版 |
2009/02/10(火) 20:32:40ID:8DV6Um/n
ファイル選択ダイアログを、ターミナルから閉じたくて、
下の処理を入れたのですが、ダイアログを閉じた後、応答が無くなります。
(GUIでキャンセルボタンや×をクリックすると正常に閉じれる)
どうすれば、ターミナルから正しく閉じれるかを教えてください。

GtkWidget *filew = NULL;
void FileSelection::destroyFileSelection()
{
  status = false;
  gtk_widget_destroy(filew);
}
0187login:Penguin
垢版 |
2009/03/29(日) 11:33:55ID:JOkFFCq+
Windowsでは、自分以外のプロセスが管理しているウィンドウのハンドル(動作中のOS上で
ユニークな識別番号)を得ることができれば、そのウィンドウのサイズやデスクトップ上での
位置などを好きにいじくったりできるのですが、LinuxのGTK+(またはGNOMEもしくはX Window
System)にそのようなAPIのようなものはありますか?
0188187
垢版 |
2009/03/29(日) 11:38:55ID:JOkFFCq+
すみません、ageさせてください。

なにがやりたいかと言うと、特定の文字列をウィンドウタイトルに含むトップレベルの
ウィンドウに対して、デスクトップ上での表示位置やサイズを変更したりといったことです。
0189187
垢版 |
2009/03/29(日) 20:36:19ID:JOkFFCq+
自己レス

libwnckてのが関係ありそうだが、Rubyから使えるんだろうか。Pythonにはそのための
モジュールが既にあるみたいなんだけど。今Ubuntu起動できないからよくわからん。
0190login:Penguin
垢版 |
2009/03/29(日) 21:12:45ID:Afl3tAxS
>>187
wmctrl コマンドのソースでもみればいいんじゃね?
0191187
垢版 |
2009/03/30(月) 10:56:06ID:+ewzli1b
レスありがとうございます。こんなコマンドがあったんですね。自分の目的にはこれを
利用するだけで十分そうですが、ソース読むのも勉強になって面白そうですね。

結果的にスレ違いになってしまってすみません。
0192login:Penguin
垢版 |
2009/04/23(木) 11:32:24ID:rK6Swnpx
だれか clispからgtkを使う方法を教えてください
0193login:Penguin
垢版 |
2009/07/10(金) 07:43:15ID:jUacI/UD
VMwareがGtk産だったとは
0194login:Penguin
垢版 |
2009/07/17(金) 23:36:58ID:hHQTz6KG
本気で聞く
おまえらはどうやってGTK+勉強なさいましたか?
0195login:Penguin
垢版 |
2009/07/18(土) 13:41:00ID:MyXAq5ze
>>194
GTK+ソース付属のexamples+demosを動かして遊ぶ

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

doc/reference読み方を覚える

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

irc.freenode.netの#gtk+とかメーリングリストで質問
0196login:Penguin
垢版 |
2009/07/18(土) 15:41:41ID:0IAjxnq5
難しそうですね
断念しました

ありがとうございませんでした
0197login:Penguin
垢版 |
2009/07/18(土) 18:31:08ID:NxC2oWbI
何をどう見たら難しそうなんだよ?
ゆとりか?
英語にびびるな!

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

WindowsでもLinuxでもCode::Blocks使えばそれほど
コンパイルできる開発環境の準備には手間取らない
0198login:Penguin
垢版 |
2009/07/18(土) 19:30:03ID:+ryPUP7D
ママが一から十まで教えてくれなきゃイヤなんじゃね
0199login:Penguin
垢版 |
2009/07/18(土) 20:00:15ID:ghQ1gSty
pygtkがいちばんやさしくてにょろにょろ
0200login:Penguin
垢版 |
2009/07/18(土) 20:39:03ID:0IAjxnq5
>>197
そうですね
サンプルソースをコピーして勉強したことにしようと思います

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

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

>>195
俺、本気になります!真面目に勉強します!
ありがとうございました!!
0201login:Penguin
垢版 |
2009/07/19(日) 01:03:57ID:vKaqQMs4
携帯とか組みこみでGTK+を使っているものって何かある?
海外では結構あるみたいだけど、日本だと聞かないよな。
0205login:Penguin
垢版 |
2009/07/24(金) 23:12:42ID:6YmCBCzn
GTKはもう少しで消滅する
googleの新しいソリューションに置換される
0206login:Penguin
垢版 |
2009/07/25(土) 04:36:37ID:00SH8Kn9
Chrome OS の事か?
確かにウィンドウシステムは時前のものを用意するらしいけど、
どうなんだろうね。そもそもソースが公開されるかどうかも怪しい。
それに、GTK+の培ってきた年月を一気に越えられるとも思えないし。
0207login:Penguin
垢版 |
2009/07/25(土) 05:18:20ID:corW1o/2
グーグルは基本Qtじゃないの。
でも今更ブラウザの下の層なんか関係ないはず。
HTML5 でアクティブデスクトップっていう懐かしいお話をもう一度やるんでしょ
0208login:Penguin
垢版 |
2009/07/25(土) 06:22:09ID:00SH8Kn9
まぁ、googleはWEBアプリが基本だから、そうなるのかね。
ただ、この事前の大袈裟なプロパガンダはMSに似てるなw
0209login:Penguin
垢版 |
2009/07/25(土) 09:19:09ID:wdRQEHVW
GTKスレはあるのにQTスレがないのはなんでだろう〜
0212login:Penguin
垢版 |
2009/08/23(日) 00:41:14ID: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  
0213login:Penguin
垢版 |
2009/08/23(日) 01:17:03ID:oYmg5B0H
Xを使わずにフレームバッファを使うGTK+とやらはインストールしてあんの?
0214212
垢版 |
2009/08/23(日) 02:02:51ID:cXbPjTOU
debian上からaptitudeでlibgtk2.0とlibgtk2.0-dev関連のライブラリをインストールしてあります。
0215login:Penguin
垢版 |
2009/08/23(日) 06:49:16ID:Do4KpMOi
Xを使わないと動かんよ。
Gtk+はXLibの面倒臭さを軽減するためのライブラリに過ぎんのだから。
Windowsに移植する場合にもXLib相当のが要る
0216login:Penguin
垢版 |
2009/08/23(日) 09:20:44ID:WBxszhFm
>>214
それはX用のパッケージ。
フレームバッファ用のGTKはlibgtk-directfb-2.0-*だぞ。

>>215
知ったか乙
0217212
垢版 |
2009/08/23(日) 10:44:26ID:cXbPjTOU
>>216
そうなんですか!

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

ご教示いただいたライブラリをインストールして確認してみます。
0218login:Penguin
垢版 |
2009/08/29(土) 19:05:24ID:7RbftsXX
libgrade+gtkmmをいじって遊んでいるのだけど
メインウィンドウからダイアログのようなウィンドウを開く
サンプルは何処かに有りませんでしょうか
0219login:Penguin
垢版 |
2009/08/29(土) 21:56:36ID:OBRUPUZc
>>218
gtkmm-demo を起動してみては?
結構いろんなサンプルがあるな > gtk-demo pygtk-demo gtkmm-demo
0221名無しさん@そうだ選挙に行こう
垢版 |
2009/08/30(日) 08:33:18ID:Czh9S0PJ
>>220
libgladeは使われなくなる方向だから、、、って思ったけど、
gtkmmだとBuilderを使ったサンプルが無いな。。。
おそらく、以下はチェックされていると思うけど、
http://gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-libglademm.html
複数のwidget idを使っているサンプルは無いですね。。。
Gnome::Glade::Xml::create()して、get_widget()して、
signal処理してrun()する流れは同じだと思うけど、
丁度良いサンプルは見つからないな。。。
0222名無しさん@そうだ選挙に行こう
垢版 |
2009/08/30(日) 08:51:11ID:IHJ1WvuS
>>221
有難うございます。小汚い書き方で何とか表示だけはするようになりました(いろいろ問題が有るけど)
綺麗に書いてあるサンプルなど見ればもう少しましになるかと思ってたのです。
libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
今は何を使う方向なんでしょうか?
0223名無しさん@そうだ選挙に行こう
垢版 |
2009/08/30(日) 10:37:24ID:Czh9S0PJ
>>222
> libgladeは使われなくなる方向なんですね。anjutaでデフォルトではく雛型がlibgladeだったので調べてました
> 今は何を使う方向なんでしょうか?
Glade 3.6.7のglade-3を起動したら、プロジェクトのオプションってダイアログが開く。
そこには、プロジェクトのファイル形式でGtkBuilderとLibgladeを選択できる。
今後は、GtkBuilderがデフォルトになって、ファイル接尾子が.uiになる。

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

http://live.gnome.org/TwoPointTwentyseven/Platform
のUpcoming Deprecationsで非推奨になっているものは、消えゆく運命。
0224名無しさん@そうだ選挙に行こう
垢版 |
2009/08/30(日) 11:08:36ID:IHJ1WvuS
>>223
Debianのlennyを使っているのでAnjuta 2.4.2、Glade 3.4.5です・・・
GtkBuilderのサンプル探しの旅に出たいと思います。有り難うございます
0225login:Penguin
垢版 |
2009/08/31(月) 02:59:20ID:WV5KE7UC
glade も GtkBUilder もほとんど同じだから、リファレンスを見ながらで
書けると思うけど。
0226login:Penguin
垢版 |
2009/08/31(月) 14:47:43ID:4XJ92u20
GtkBUilderを使ったGtk::Drawingariaのサンプルを作ろうとしたんだけど
途端に分からず・・・
イベントとかどうやってつなげたらいいのだろう
イベント処理で書かないと無理だよね?
0227login:Penguin
垢版 |
2009/09/01(火) 01:49:35ID: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);
}
0228login:Penguin
垢版 |
2009/09/01(火) 01:51:56ID: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;
};
0229login:Penguin
垢版 |
2009/09/01(火) 01:58:01ID: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();
}
0230login:Penguin
垢版 |
2009/09/01(火) 02:02:59ID:o0MV2wSR
ただの Gtk::Window で悪いけど Gtk::Drawingaria でも大差ないはず。
app_window.glade は GtkBuilder 形式の xml ね。
大体こんな感じが典型的な処理だと思うよ。
0231login:Penguin
垢版 |
2009/09/01(火) 20:43:11ID:LcijR9gh
>>226
> イベントとかどうやってつなげたらいいのだろう
> イベント処理で書かないと無理だよね?
drawareaをeventboxの上に乗せないとダメじゃなかったっけ?
# と、テストもせずにカキコ
0232login:Penguin
垢版 |
2009/09/01(火) 20:45:43ID:azH81sw2
有難う、私が書いていたのと大分違うみたい
少しずつ見てみるよ
0233login:Penguin
垢版 |
2009/09/02(水) 01:45:20ID:XY5vbVWT
ちなみに AppWindow みたいに Gtk::Widget を継承している場合は、単に

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

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

ただ、これもトップレベルのウィンドウのイベントしか反応できないから、
>>229 のコンストラクタみたく cast_static なんかでボタンとか取得して、
自分のメソッドを connect していくのが C++ っぽい書き方な気がする。
0234login:Penguin
垢版 |
2009/09/02(水) 13:02:19ID:Wp36mia7
>>227
コンパイルしてみたけどエラーで落ちてしまったよ

m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
これってどんな意味かな?
0235login:Penguin
垢版 |
2009/09/02(水) 18:54:23ID: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 ) );
0236login:Penguin
垢版 |
2009/09/02(水) 19:25:12ID: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();
};
0237login:Penguin
垢版 |
2009/09/03(木) 02:34:12ID: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 がないと駄目だよ。
それで落ちてるんじゃない?
0238login:Penguin
垢版 |
2009/09/03(木) 02:38:43ID:6mgKfH1n
>>235
別にそんな小汚くはないと思うけど。大体そんなもんだよ。
0239login:Penguin
垢版 |
2009/09/03(木) 02:47:30ID:6mgKfH1n
>>236
MyDialog は Gtk::DrawingArea を継承してもいいかも。
それと on_* は protected の方がいいよ。
0240login:Penguin
垢版 |
2009/09/03(木) 12:32:06ID:jVnTHMiE
>>234
適当なGtk::WindowのGUIを作って読み込ませたんだけど
それがうまく行ってなかったのかもしれない
色々有難う

GtkBuilderを使わない方も少しいじってみるよ
0241login:Penguin
垢版 |
2009/09/06(日) 14:05:15ID:aXigLrxm
Gtk::SpinButtonを浮動小数点表示にする事は出きますでようか?
0242login:Penguin
垢版 |
2009/09/14(月) 13:21:24ID:kBmevVmP
cairommでバックバッファを使った描画はどうすれば良いのでしょうか?
save(),restore()は少し違うような気がして・・・
0243login:Penguin
垢版 |
2009/09/15(火) 17:55:42ID:1BtVuQj7
GTK+onDirectFBをインストールしようと思ってDirectFBのサイトに行こうとしたら
なぜか繋がらないんだけど誰か教えr・・・教えてください。
0244login:Penguin
垢版 |
2009/09/15(火) 17:56:26ID:1BtVuQj7
sageちまった
0245login:Penguin
垢版 |
2009/09/15(火) 17:59:06ID:1BtVuQj7
ttp://www.directfb.org/

URLも貼っておきます。
繋がらない、マジで誰か教えてください
0246login:Penguin
垢版 |
2009/09/21(月) 16:41:13ID:X29eYjZv
GtkGLextmm を使っている人はいますか?
実装具合とか、こっちのライブラリの方が良いよとかありましたら教えて頂きたいのです。
超初心者なのでMesaとかとの違いも分かりませんがGtk繋がりと言うことで宜しくお願いします。
0247login:Penguin
垢版 |
2009/09/24(木) 10:56:15ID:hMFgf6/j
独自処理のバッテリー残量表示のために
Ruby/Gtk2でGtk::StatusIconを使ってみたんですが、
tooltipは付けられても、どうもlabelを付けることができなさそうです。
通知領域にテキストないしはアイコン+テキストを表示したいのですが、
どんなクラスを使えばいいんでしょうか?
リファレンスを見た限りではちょっと見当が付きませんでした。
Gdk::Pixbufにテキストを動的に描画するのかな。
0249login:Penguin
垢版 |
2009/09/25(金) 18:17:32ID:WaiZYKyV
>>243-245
DirectFBのソースをDLしようとオフィシャルサイトを開こうとしたけど、まだサーバが落ちたままだね・・・
9/14頃から落ちてるっぽいからメンテナンスにしては長過ぎだよね。
もしかしてDirectFB終了フラグON?
0250login:Penguin
垢版 |
2009/09/27(日) 00:08:06ID:ng4uKqzS
>>249
今はつながってる。digしたら212.227.87.76だった。
0251login:Penguin
垢版 |
2009/09/28(月) 02:12:56ID:5e1BLaTK
GTK+2.18記念あげ

ウィンドウの管理すらGDKで行なうようになり、ちらつきを減少させたり
ウィンドウの変形やアニメーションを行なえるようになったり、別の
(Clutterのような)描画ライブラリの中に簡単に埋め込めるように
なったりしたようだ。

他にも、各プラットフォーム毎に実装していたウィンドウを管理するコード
を共通にする事ができるようだ。

WindowsやMacOSXでの動作が改善されたらいいなと。
0252login:Penguin
垢版 |
2009/10/04(日) 14:16:19ID:P8VQfdNh
gtkmmで複数のウィンドウを開くプログラムは作れますか?
イメージ的にはGIMPの様なコントロールが有って描画画面が有る感じ
gtk+を使えば出来るのかな?
0253252
垢版 |
2009/10/05(月) 12:16:45ID:yVAGOb64
やり方が分かったの報告(するまでもないのかな・・・)
Gtk::Windowを継承したクラスをインシタンス化して

hogehoge.show()

で表示されました。(バカみたいな話でお恥ずかしい)
レスを投稿する


ニューススポーツなんでも実況