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

90 名前:login:Penguin mailto:sage [2008/10/19(日) 18:09:25 ID:ZgmXTrMt]
今、ruby-gtk2を使って簡単な画像ビューワを作っています。
デスクトップにフィットさせて表示(大きい場合は縮小表示)させたいのですが、
パネルとかウインドウマネージャの装飾を考慮して、画像を表示できる最大の
サイズを知りたい場合、どうしたら良さそうですか?
探してはいるものの、なかなか良さそうな手が見つからないです。


91 名前:login:Penguin mailto:sage [2008/10/19(日) 19:54:56 ID:3IMHrYAs]
gtk2hsにトライしたが、一部関数が無くてダメでした。まあこれからか。
erlgtk使いの人とかどう?

92 名前:login:Penguin mailto:sage [2008/10/19(日) 20:28:12 ID:Su20jt3Y]
>>90
ウィンドウを maximize した時にでるシグナルの中でウィンドウ
サイズを取得して、画像のサイズを拡大縮小とか。

これだと、ウィンドウが出てから画像が出るまで、間が空くか?


93 名前:90 mailto:sage [2008/10/20(月) 00:25:14 ID:s5JT3EOQ]
>>92
レスありがとうございます。
やっぱり、そういうちょっと強引な方法しかないんですかね。
せっかく教えてもらったんですが、ちらつきそうなので、できれば避けたいです。
今は、スクリーンサイズを取ってきて適当なサイズで妥協しています。

何かあっても良さそうなのになぁ。。。


94 名前:login:Penguin mailto:sage [2008/10/20(月) 00:34:47 ID:upSqhUNX]
>>93
"expose-event"シグナルかな、rubyであるのかは分からないけど

95 名前:login:Penguin mailto:sage [2008/10/20(月) 02:08:26 ID:RwkYMDWR]
>>90
昔SunのJDKのソースを読んでいたことがあるんだが、当時のJDKの実装では、
1) 使われているwindow managerを特定
2) 有名(あるいは標準的と言うべき)なwindow managerであれば、
  それぞれのwm固有の枠部分の装飾手段(Windowの重なり具合など)
  の知識を基に、今有るウィンドウの親を手繰ってwm由来部分を調査し
  wm由来部分のサイズを決定
3) 知らないwmは非サポートってことで適当に……
なんてことをしていた

ここ数年で提案されてない限り、良い方法はないと思われ

96 名前:login:Penguin mailto:sage [2008/10/20(月) 05:08:18 ID:mB1jem32]
実際にmaximizeするしか知る方法はないだろう?
強引というならそれをやる前に知ろうとする方が強引のような。
それにGTK+はデフォでdouble-bufferedだから何も考えなくてもちらつきしない。

97 名前:login:Penguin mailto:sage [2008/10/20(月) 07:37:12 ID:DDLH0hrK]
>>96
> 実際にmaximizeするしか知る方法はないだろう?
> 強引というならそれをやる前に知ろうとする方が強引のような。

同意。それ以外のやり方してるソフトなんてないのでは?

98 名前:90 mailto:sage [2008/10/20(月) 21:27:41 ID:s5JT3EOQ]
レスありがとうございます。

>>94
ごめんなさい、"expose-event"シグナルはrubyでもあるのですが、94さんの意図が
よく理解できませんでした。

>>95
詳しい情報ありがとうございます。
Sunの人でさえ、そういう実装をされているくらいだから、簡単な方法は無さそうですね。

>>96,97
そんなことを簡単に知ろうという方が間違いですかね。
ちなみに、ちらつくと書いたのは、実際maximizeしてからサイズを取ってくるとすると
画面に表示することは避けられず、一瞬maximizeしたウインドウが見えてしまうという
意味で書きました。
まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
誤解しているかも知れませんが。




99 名前:94 mailto:sage [2008/10/20(月) 23:02:02 ID:upSqhUNX]
>>98
すみません、>>90さんの要求を正しく理解していませんでした。

最大化できるサイズを求めるというのではなくて、あくまでアプリ側で必要な
サイズ(GtkRequisition)と、実際に獲得できたサイズ(GtkAllocation)
で実装するのはいかかでしょうか?

100 名前:login:Penguin mailto:sage [2008/10/21(火) 02:53:13 ID:5A1QOuH6]
>>98
> まだGTKのシグナルがどんなタイミングで発行されるのか、よく理解できていないので
> 誤解しているかも知れませんが。

どう考えてもこれがガンだろ。呆れた。

101 名前:90 mailto:sage [2008/10/21(火) 23:21:31 ID:rjo5j4+k]
>>99
色々、考えて下さり、ありがとうございます。

>>100
まあ、そう言わんで下さい。

皆さんに教えて頂いたことをヒントに、時間が取れるときに
もっと勉強しようと思います。
レスをしてくれた方々、ありがとうございました。


102 名前:login:Penguin mailto:sage [2008/10/22(水) 01:14:52 ID:1Hw6zT+4]
複数のファイルをユーザーに選択させ、そのファイルのパスをリストなり
配列なりで得たいと考えています。

調べてみたところ GtkFileChooserDialog は単一ファイル|ディレクトリ
にしか対応していないようなのですが、上記のような機能は自前で実装す
るしかないのでしょうか。

103 名前:login:Penguin mailto:sage [2008/10/22(水) 01:40:40 ID:TbaNGOlU]
>>102
gtk_file_chooser_set_select_multiple()
gtk_file_chooser_get_filenames()
の組み合わせじゃ駄目なのかい?

104 名前:login:Penguin mailto:sage [2008/10/22(水) 10:25:49 ID:ApulL45s]
>>103
ありがとうございます。完璧に私の調査不足でした。
教えていただいた方法でいけそうです。



105 名前:login:Penguin mailto:sage [2008/10/25(土) 10:14:11 ID:dTl3thQm]
glade3の最新版にしたらいつの間にかGtkBuilder形式でも出力できるようになってたよ。
さすがにウィンドウ別に分けて出力はしてくれないけど。

106 名前:login:Penguin mailto:sage [2008/10/25(土) 15:02:49 ID:AakIN1gI]
PyGTKでランチャー作ってます
ホットキーから呼び出すにはどうすれば
やはりgconf弄らないと無理なのでしょうか。

107 名前:login:Penguin mailto:sage [2008/10/25(土) 17:13:44 ID:zQTl7fNi]
どのウィンドウがフォーカスされている状態でもキー操作で呼び出したいってこと?
そりゃXならウィンドウマネージャの仕事だ。

108 名前:login:Penguin mailto:sage [2008/10/25(土) 17:58:26 ID:AakIN1gI]
>>107
そうです
どんな操作してるときもホットキーから呼び出したいので
PyGTK以外の言語は全く解らんのですがXLibあたりですかね
これさえ備えられればほぼ完成なんです
ありがとうございました。もう少し調べてみます



109 名前:login:Penguin mailto:sage [2008/10/25(土) 18:06:09 ID:e1TliF6D]
>>108
それ俺も知りたい。分かったら教えてくれ。

110 名前:login:Penguin mailto:sage [2008/10/25(土) 18:20:20 ID:zQTl7fNi]
>>108
ウィンドウマネージャにショートカットで任意のプログラムを呼び出すような
親切機能がついていればできる、なければ基本的にできない。

111 名前:login:Penguin mailto:sage [2008/10/25(土) 21:12:08 ID:UmyLPmdd]
こんなんでどうよ

#!/usr/bin/python
import gtk, gobject
import Xlib, Xlib.display, Xlib.X, Xlib.XK

win = gtk.Window()
win.connect('destroy', gtk.main_quit)
win.show_all()

display = Xlib.display.Display()
root = display.screen().root 
root.grab_key(
        display.keysym_to_keycode(Xlib.XK.XK_a), # keycode
        Xlib.X.ShiftMask | Xlib.X.ControlMask,   # modifier
        True, Xlib.X.GrabModeAsync, Xlib.X.GrabModeAsync)
display.sync()
def check(*args):
    ev = display.next_event()
    if ev.type == Xlib.X.KeyPress:
        print (ev.detail, ev.state) # (keycode, modifier)
        win.present()
    return True
gobject.io_add_watch(display, gobject.IO_IN, check)

gtk.main()

112 名前:login:Penguin mailto:sage [2008/10/26(日) 00:16:49 ID:cuuCZE3q]
>>109-110
自分が得た情報はもちろん共有しますよ
ウインドウマネージャってubuntuだとcompizでしたっけ?
WindowsだとpyHookなんてのがあって楽そうなんですが
>>111
走らせてみました
小さなウインドウは出ましたが、こちらではキーに反応しません
a, <shift>a, <ctrl>aはダメでした。他のキーですか?

個人的にはこの辺が怪しいと思っていたのですが
ttp://faq.pygtk.org/index.py?req=show&file=faq23.009.htp
ttp://manpages.ubuntu.com/manpages/feisty/ja/man3/XGrabButton.html
ttp://xjman.dsl.gr.jp/X11R6/X11/CH12.html

PyGTKって日本語のドキュメントが少ないと思っていたけど
それ以前にドキュメントの絶対数が少ない気がしてきた

113 名前:login:Penguin mailto:sage [2008/10/26(日) 00:20:34 ID:dWWl1VvV]
>112
xbindkeysのソースが参考になるかもね。
でもgdkとgtkだけで済ませたい気もする。

114 名前:login:Penguin mailto:sage [2008/10/26(日) 01:05:43 ID:w1SELDT+]
>>112
<shift><ctrl>aです

115 名前:login:Penguin mailto:sage [2008/10/26(日) 02:08:20 ID:cuuCZE3q]
>>113
これCですか?現時点では意味不明でした。
やはり最低でも2言語くらい習得しないと細かい所が弄れませんね。
>>114
それも試してみましたが何故が無反応でした。
さらに一週間くらい調べてみます。

116 名前:login:Penguin mailto:sage [2008/10/27(月) 22:08:10 ID:hjSX5CJk]
glade3といえば日本語メッセージの翻訳が迷訳てんこもりで参った記憶しかないぞ。
ありゃGTK+プログラミングろくに理解してない奴が訳してるんだろうなあ。

117 名前:login:Penguin mailto:sage [2008/11/02(日) 17:56:33 ID:8LwLmm0R]
出版界を見ると、GTK+よりもQtの方が元気があるように見えるんだけど、
ユーザ数ではどうなんだろう。日本でも最近出てる本はQtのだよね。

118 名前:login:Penguin mailto:sage [2008/11/02(日) 18:07:31 ID:f8W85vrO]
出版ではQtだが、実際にはgtkのほうが人気がある。
ユーザ数でもおそらくgtkのほうが多い。
なぜQtの本のうほうが多いのかは謎。

gtkの本ってなんであんなに少ないんだろうか。



119 名前:login:Penguin mailto:sage [2008/11/03(月) 12:00:13 ID:zVTwcnmi]
一つの指標として
gnome vs kde
ttp://www.google.co.jp/trends?q=GNOME%2CKDE&ctab=0&geo=all&date=all&sort=0
gtk vs qt
ttp://www.google.co.jp/trends?q=gtk%2Cqt&ctab=0&geo=all&date=all&sort=0
ちなみにノルウェーではgnomeの人気が高いw

120 名前:login:Penguin mailto:sage [2008/11/03(月) 12:19:36 ID:f8RoxdRr]
ネット上のドキュメントが充実してるからとか? 洋書も最近のはQtの
が多いよね。

日本GNOMEユーザー会とKDE ホームページ(日本KDEユーザ会)の
サイトを比べてみると、一見KDEの方が勢いがあるように見えるけど、
リンクのメンテがボロボロだな。

121 名前:login:Penguin mailto:sage [2008/11/03(月) 12:24:19 ID:f8RoxdRr]
>>119
なんかKDE/Qtのが優勢な感じw

122 名前:login:Penguin mailto:sage [2008/11/03(月) 13:56:17 ID:7ydUuqhV]
>>119
一部Quicktimeだったりしないか?
www.sophia-it.com/content/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BF%E3%82%A4%E3%83%A0

123 名前:login:Penguin mailto:sage [2008/11/03(月) 22:01:57 ID:57+pbs2m]
Ubuntu人気があるからgnomeのほうがユーザ多そうだけどな、実際どうなんだろな。
あと他言語のバインディングではgtkのほうが優勢な気がするんだがどうなんだろ。
QtHaskellとか使ってる人いる?俺はgtk2hs使ったけど使い物にならなかったよwww必要関数無くてwwww。


124 名前:login:Penguin mailto:sage [2008/11/03(月) 22:39:37 ID:iQkJfTcr]
Ubuntu, Fedora, Debian, Vine(笑)とか標準ではたいがいgnomeだからね。
やっぱシェア(数)はやっぱgnomeが多いんじゃないの?

KDEはOpenSUSE, Mandriva(turbo)とか。
まぁ前出のgnomeトリはたいがいKDEの派生つーかブランチもあるし
入れ替えたって(共存させたって)いいんだけどね。


125 名前:119 mailto:sage [2008/11/03(月) 23:02:36 ID:zVTwcnmi]
>>122
一部ノーム(地名)だったりもするぜ

126 名前:login:Penguin mailto:sage [2008/11/03(月) 23:40:33 ID:CkL33X1G]
ユーザーはともかく、クリエータはGTK(GNOME)の方が多いだろう
GTKがLGPLなのに対して、QtはGPLか最近のtool kit としては高額の
有償ライセンスかのいずれか
利用できる人間は、どうしても限られてくる

127 名前:login:Penguin [2008/12/17(水) 15:27:32 ID:KRTiKwTi]
欲しいソフトがないから自分で作ろうと思う。
だが、どの言語もソースは読める程度、簡単な改造が出来る程度のレベルです。
だが、一からあのソフトを作りたい・・・。

そんな俺はどのようなGTK開発環境が良いとおもいますか?
今考えているのは、
Pygtk + grade の組み合わせです。
これを薦めるハッカーが多いのと、Pythonという言語がしっくりくるからです。

ほか、初心者におすすめのGTK開発環境がありましたら教えて下さい。

128 名前:login:Penguin mailto:sage [2008/12/17(水) 18:01:23 ID:lMmUsPdE]
まあそのへんより簡単なのは無さそうだよね。自分はRubyが好きなので
Rubyで勉強してるけど。



129 名前:vte [2008/12/17(水) 19:59:56 ID:4+kAQRIa]
vte-0.17.4 を ./configure && make && make install してみたのだけど, 画面端で漢字入力を始めると, 折り返しも延長もしてくれず, 入力文字が見えなくなる.

|                              ▽かんじに|

のように. でも次のようになってほしいのだけど,

|                               ▽かんじに|
|ぅりょく                                 |

とか. gtk-demo の text-widget の multiple views などはうまくいってます. .gtkrc-2.0 とかに何か設定が必要でしょうか?


130 名前:login:Penguin mailto:sage [2008/12/22(月) 09:25:07 ID:Z0zqkFax]
>>127
GTKmm

131 名前:login:Penguin mailto:sage [2008/12/23(火) 19:56:34 ID:3l8ZCr+m]
ところでpygtkって遅くね?
Core2Duoのマシンでボタンクリックしてからレスポンスが10秒後とかザラなんだが。
gtkmmとか生のgtkのほうがいいんじゃね?

132 名前:login:Penguin mailto:sage [2008/12/23(火) 20:16:59 ID:LQjeTU8C]
gtkmmは地獄。

133 名前:login:Penguin mailto:sage [2008/12/23(火) 21:14:13 ID:2F34Up+Q]
レスポンスが10秒後ってなんか間違えてるんじゃ

134 名前:login:Penguin mailto:sage [2008/12/23(火) 21:25:44 ID:ae4qT9Yd]
PyGTK + glade3 の日本語チュートリアルのようなものありませんか?
この辺りが翻訳されているのですが、glade3では動きませんでした・・。

po3a.blogspot.com/2006/08/pygtk-glade-gui.html
po3a.blogspot.com/2006/08/pygtk-glade.html

Rubyで勉強したほうが情報多い?

135 名前:134 mailto:sage [2008/12/23(火) 21:34:16 ID:ae4qT9Yd]
こちらのサンプルは PyGTK + glade3 動きました。
ttp://palepoli.skr.jp/content/python/window1.php

でもここから先が進めません。
PyGTK + glade3 で勉強になるサイトがあったら教えて下さい。
英語でもいいです。宜しくお願いします。

136 名前:login:Penguin mailto:sage [2008/12/24(水) 06:59:19 ID:aQCa49jr]
pygtkのことは知らないんでよくわからないけど、これとかは?
www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html
これでだめなら、ウェブ全体からググれ。

ちなみにruby用の日本語チュートリアルはglade2使用。
ruby-gnome2.sourceforge.jp/ja/hiki.cgi?libglade2-tut

137 名前:134 mailto:sage [2008/12/24(水) 09:50:41 ID:hiOOXDc5]
>>136
ありがとうございます。
参考になりました。

138 名前:login:Penguin mailto:sage [2008/12/24(水) 11:47:11 ID:j0KWvBZ+]
C++/GTKで書いたプログラムを
wxPythonで書き直したら
wxPythonで作った方がサクサク速く動いた orz




139 名前:login:Penguin mailto:sage [2008/12/24(水) 14:47:02 ID:gkyqeyAR]
windows上か?

140 名前:login:Penguin mailto:sage [2008/12/24(水) 15:36:14 ID:EbVd5uRZ]
PHP-GTKってどうよ?

141 名前:login:Penguin mailto:sage [2008/12/26(金) 04:24:16 ID:0/dGPTTl]
そんなのあるのか。今度試してみよう。

142 名前:login:Penguin mailto:sage [2008/12/26(金) 23:23:17 ID:Z/96o+8l]
いまさらかもしれないが時代は今CAIROだということに気づいた

journal.mycom.co.jp/series/firefox/005/

プラットフォームやハードウェアに依存せず精密な描画が可能になるらしい

CAIRO使えるのはGTK+2.10から上のver
誰か使ってる人いる?

143 名前:login:Penguin mailto:sage [2008/12/27(土) 00:05:03 ID:7rBKxqYP]
時代を読み違えてるな。
ベクトルベースとか3DデスクトップとかVistaとともに沈んだよ。
PC肥大化狂騒曲は終わりだ。Qt4も総スカンだし

144 名前:login:Penguin mailto:sage [2008/12/27(土) 06:06:34 ID:B/jsjdnT]
いやでも実際有名どころで使われてるわけだし

それに素のGTKのみで描画するより処理速度は速くなるし,
プラットフォーム間の互換性も高まると思う

別に肥大化してるわけじゃないしVistaや3Dデスクトップとはちょっと違うだろう

gtkがcairoをサポートしてまだ日も浅いしむしろ今からが勝負

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も貼っておきます。
繋がらない、マジで誰か教えてください

246 名前:login:Penguin mailto:sage [2009/09/21(月) 16:41:13 ID:X29eYjZv]
GtkGLextmm を使っている人はいますか?
実装具合とか、こっちのライブラリの方が良いよとかありましたら教えて頂きたいのです。
超初心者なのでMesaとかとの違いも分かりませんがGtk繋がりと言うことで宜しくお願いします。

247 名前:login:Penguin mailto:sage [2009/09/24(木) 10:56:15 ID:hMFgf6/j]
独自処理のバッテリー残量表示のために
Ruby/Gtk2でGtk::StatusIconを使ってみたんですが、
tooltipは付けられても、どうもlabelを付けることができなさそうです。
通知領域にテキストないしはアイコン+テキストを表示したいのですが、
どんなクラスを使えばいいんでしょうか?
リファレンスを見た限りではちょっと見当が付きませんでした。
Gdk::Pixbufにテキストを動的に描画するのかな。

248 名前:login:Penguin mailto:sage [2009/09/24(木) 11:11:57 ID:hMFgf6/j]
www.daa.com.au/pipermail/pygtk/2009-June/017120.html
ruby-gnome2.sourceforge.jp/hiki.cgi?Gdk%3A%3APixbuf

どうもそのようですね。でも、もっと簡単にできないもんか……。



249 名前:login:Penguin mailto:sage [2009/09/25(金) 18:17:32 ID:WaiZYKyV]
>>243-245
DirectFBのソースをDLしようとオフィシャルサイトを開こうとしたけど、まだサーバが落ちたままだね・・・
9/14頃から落ちてるっぽいからメンテナンスにしては長過ぎだよね。
もしかしてDirectFB終了フラグON?

250 名前:login:Penguin mailto:sage [2009/09/27(日) 00:08:06 ID:ng4uKqzS]
>>249
今はつながってる。digしたら212.227.87.76だった。

251 名前:login:Penguin [2009/09/28(月) 02:12:56 ID:5e1BLaTK]
GTK+2.18記念あげ

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

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

WindowsやMacOSXでの動作が改善されたらいいなと。

252 名前:login:Penguin mailto:sage [2009/10/04(日) 14:16:19 ID:P8VQfdNh]
gtkmmで複数のウィンドウを開くプログラムは作れますか?
イメージ的にはGIMPの様なコントロールが有って描画画面が有る感じ
gtk+を使えば出来るのかな?

253 名前:252 mailto:sage [2009/10/05(月) 12:16:45 ID:yVAGOb64]
やり方が分かったの報告(するまでもないのかな・・・)
Gtk::Windowを継承したクラスをインシタンス化して

hogehoge.show()

で表示されました。(バカみたいな話でお恥ずかしい)


254 名前:login:Penguin mailto:sage [2009/10/07(水) 17:30:55 ID:PMxweG2O]
インシタンス><

255 名前:login:Penguin [2009/10/11(日) 18:03:35 ID:Sidlsc4E]
Failure to compile 64 bit gtk on mac os
buffalothedestroyer.blogspot.com/2009/07/blog-post.html
>Attempted to install gtk+-2.17.2 on my mac. Had to install:

www.nabble.com/Gtk-issues-td23803508.html

mac 環境だと gtk は使えないんだろうか…?

256 名前:login:Penguin mailto:sage [2009/10/12(月) 14:47:14 ID:sqmRrC1g]
ググってみたけど使えるっぽいよ

257 名前:login:Penguin mailto:sage [2009/10/13(火) 21:28:52 ID:l2EymYVQ]
>>255
Leopard だけど、MacPortsからインスコできたよ。
Ruby/GtkとPyGtk用にと。

258 名前:login:Penguin mailto:sage [2009/10/14(水) 03:07:04 ID:VVFhTsV6]
www.amazon.co.jp/入門GTK-菅谷保之/dp/4274067769

webの情報をまとめた程度らしいけど
gtkmmも扱って欲しかったかな



259 名前:login:Penguin mailto:sage [2009/10/14(水) 03:31:23 ID:cB0J9abS]
Gtk+2 で初の和書じゃないの。出るだけで価値がある

260 名前:login:Penguin mailto:sage [2009/10/14(水) 03:43:48 ID:Evvplg3O]
まぁお布施のつもりで買っておくか

261 名前:login:Penguin mailto:sage [2009/10/14(水) 12:08:22 ID:oK0tjYE+]
Gtk::SpinButtonの値が変更された時に発生するイベントを一時的に停止することは出来ますか?
複数のGtk::SpinButtonが変更されるのが分かっている場合に一時的に停止して
手動でアップデートしたいのです。

262 名前:login:Penguin mailto:sage [2009/10/14(水) 22:05:50 ID:8MVmnU1X]
>>258
gtk2hsも扱って欲かったwww
買うけどなwwww

263 名前:login:Penguin mailto:sage [2009/10/14(水) 23:22:20 ID:QhaIdhW6]
QtよりGTK+がイイみたいだぬ、GTK+に決めるぬ

264 名前:login:Penguin mailto:sage [2009/10/15(木) 00:17:55 ID:K/xBs5bI]
Qtもいいぬ。触ってみてぬ(´・ω・`)

265 名前:login:Penguin mailto:sage [2009/10/15(木) 03:29:50 ID:eDklkq43]
>>258
そもそも洋書でもgtkmmはないだろ。そんな中で日本語の本なんて奇跡が
起こらない限り無理だろ。


266 名前:login:Penguin mailto:sage [2009/10/15(木) 13:37:26 ID:pxmDyP/M]
>>258
独創的なな表紙だな

267 名前:login:Penguin [2009/10/15(木) 23:20:38 ID:eyJUfiVx]
   【恐怖の】呆れるほど危険な民主党の正体【民主党】
    http://www.yo●utube.c●om/watch?v=●MUv12Ae7ojE
    小沢一郎 〜 闇の系譜 :秘書逮捕の真相/北朝鮮との黒い関係 高画質
    http://www.yo●utube.com/w●atch?v=gdKVt●_vKCHc
    2/3【イリハム・マハムティ】東トルキスタンの歴史と中共の弾圧[H21/7/8]
    http://www.you●tube.com/watch?v=6eUN●hjdBLXg
    漫画で学ぶチベット問題
    http://www.ni●covideo.jp/w●atch/sm275●2213
    日米規制改革および競争政策イニシアティブに基づく日本国政府への米国政府要望書
    japan.u●sembassy.●gov/j/p/tpj-j2●0041020●-50.html#mineika-s

●の部分は外してブラウザのURLに入れること



268 名前:login:Penguin mailto:sage [2009/10/16(金) 23:10:15 ID:qPhMCs8o]
>>258
「入門GTK+」
今日、買ってきたよ。

最近は、Web上のホームページのプログラミング解説の方が分かり
易いとうことが多くなってきているようだけど、
「入門GTK+」を
サックっと、50ページくらい読んでみたところ
この本は、意外に読みやすいし、わかり易い。
他のプログラミングの習得に挫折した人でも何とかいけそうな感じかな。



269 名前:login:Penguin mailto:sage [2009/10/16(金) 23:12:12 ID:q3/VuRbk]
QtだとQt CreatorとゆうIDEが使いやすいけど、
GTK+使う時はどんなIDE使うと便利ですか。

270 名前:login:Penguin mailto:sage [2009/10/16(金) 23:26:21 ID:qPhMCs8o]
>>269

「入門GTK+」では、Anjuta(アニュータ)が紹介され解説されているね。

271 名前:login:Penguin mailto:sage [2009/10/16(金) 23:34:15 ID:qPhMCs8o]
そうそう、時間があったので
qt4の解説書も立ち読みしてきたんだけど、今日買った「入門GTK+」
の方がわかり易かった。

誰か、「猿でもわかるqt4」って本、書いてくれないかな〜

272 名前:login:Penguin mailto:sage [2009/10/16(金) 23:37:35 ID:q3/VuRbk]
GTK+は使ったときないけど、QtもQt Creatorもすごく使いやすいぬ(´・ω・`)
GTK+簡単なら使ってみようかしら。

273 名前:login:Penguin mailto:sage [2009/10/17(土) 14:15:16 ID:XYXybyM0]
>>268
読みやすいのか、ボーナス出たら買おうかな。

>>272
C++使えるならQtだけでいいんでない?
おれはCしか知らないからGTK…

274 名前:login:Penguin mailto:sage [2009/10/17(土) 15:22:41 ID:nWRW4zS0]
そいつム板のwxスレを荒らしてるキチガイだから放置推奨

275 名前:login:Penguin mailto:sage [2009/10/18(日) 03:51:09 ID:+Fs337jm]
Gtk+の場合はGladeってのがある。もちろん簡単。

276 名前:login:Penguin mailto:sage [2009/10/18(日) 09:53:27 ID:juku8Oo/]
gladeはもうobsoleteだけどね。今はGtkBuilderを使う

277 名前:login:Penguin mailto:sage [2009/10/18(日) 09:59:19 ID:oZOJkxHq]
glade自体はまだまだ現役だよ。
ただlibgladeはもうobsoloteだけどね。

278 名前:login:Penguin mailto:sage [2009/10/18(日) 21:34:36 ID:mlVaod2q]
>>271
ok
究極の友愛本と帯に書いておくよ




279 名前:login:Penguin mailto:sage [2009/10/21(水) 08:09:56 ID:2ccCLXEP]
あと半年たらずでGTK+3が出るこの時期に出さんでもという気もするが。

280 名前:login:Penguin mailto:sage [2009/10/21(水) 12:58:05 ID:tvBs0TF8]
>>279
HPに公開していたGTK+の第2版までのドキュメントを著書にしたいという願いと、
出版社側での「最近GTK+の本が出ていないので出したい」と言う思わくが一致して
GTK+-2の解説であっても出したんでないの。

281 名前:login:Penguin mailto:sage [2009/10/21(水) 21:25:41 ID:6UoL2jU0]
GTK+3ってそんなに変わるの?

282 名前:login:Penguin mailto:sage [2009/10/21(水) 22:08:56 ID:dJLlBo7l]
>>281
うん

283 名前:login:Penguin mailto:sage [2009/10/22(木) 05:25:32 ID:sG60T9Up]
3Dデスクトップをデフォルトにする方向性はやめてほしい。
Vista も KDE4 も総スカンだろ?
CPUのクロックが頭打ちなんだから、プログラマは節制しないと。

284 名前:login:Penguin mailto:sage [2009/10/22(木) 06:02:24 ID:IEkHgIHU]
CPUのクロックが頭打ちだからこその3D描画だろ
GPUにやらせたほうが描画は速い ※適切な3Dドライバがある場合に限る

285 名前:login:Penguin mailto:sage [2009/10/22(木) 07:05:43 ID:+CGcKXd7]
オイラは、普段非力なマシンばかり扱っているから3Dをすると重くてかなわん!
GTK+3が出ても当分は、GTK+2を使うよ。

「入門GTK+」を参考にすれば、jpgやgifのイメージビュ-ワが簡単に作れるし
動作も軽いからね。

286 名前:login:Penguin mailto:sage [2009/10/22(木) 09:00:06 ID:hz6htkDb]
描画は速いかもしれないがメモリ食うんだ

287 名前:login:Penguin mailto:sage [2009/10/22(木) 18:11:31 ID:oTwQaR0U]
GTK+3は使用メモリ量が減って重くなるの?

288 名前:285 mailto:sage [2009/10/22(木) 19:41:05 ID:2c91WZnW]
因みに我が家での、
「入門GTK+」を参考に作ったイメージビュ-ワで
画像 1024x768_16bit_color.jpg(65536色)表示時のメモリ使用量は、

イメージビュ-ワ本体だけの立ち上げ時: 1.25MB
画像1024x768_16bit_color.jpg表示時: 1.25+2.62=3.87MB
だった。



289 名前:login:Penguin mailto:sage [2009/10/22(木) 22:10:41 ID:1jy7wL1R]
Windows だと何十メガとメモリ食うよね。
まあしょうがないんだろうけど。

290 名前:login:Penguin mailto:sage [2009/10/22(木) 22:42:41 ID:GKZrjVVp]
GTK+3はスルーしてGTK+4まで待つお(´・ω・`)

291 名前:login:Penguin mailto:sage [2009/10/23(金) 02:29:05 ID:icsRYQ9+]
Gtk+3は現状で限りなく3に近づいているから、そんなに変わらない。


292 名前:KyPAWlrSIokuKhBa mailto:i1o2h9k.@gmail.com [2009/10/23(金) 22:50:30 ID:gHGN7SxH]
The psychology literature certainly has a lot to say about the topic, but economists have a rather simplistic view of the issue. ,

293 名前:login:Penguin mailto:sage [2009/10/24(土) 00:38:30 ID:9RfZkvGi]
>実のところ,私はKDE-1.0を見て(日本語は通らなかったものの)デスクトップ分野での UNIXの未来を確信し,
>GNOME-1.0を見て目の前が真っ暗になった人なのですが(笑)
>当時はQtが改変不可だったために,GTK/GNOMEを選択せざるを得なかった.

とあるサイトの人のことばなんですが、詳しいことがさっぱりなので、どういう文脈なのかわかりません
誰か解説していただけたら幸いです。もしこれが荒れるような内容でしたらスルーを…

294 名前:login:Penguin mailto:sage [2009/10/24(土) 01:27:11 ID:BKx301Ml]
趣旨は脚注でない本文のほうにあると思うが、
GObjectも定着して成長したし、いまは中の人の評価も少しは違うかも。
まぁGtk+はダサい技術だと思う。でもダサいほうが品質高かったりするわけだが

295 名前:login:Penguin mailto:sage [2009/10/24(土) 01:54:57 ID:Qc2ltt6a]
クラス構造体の中に変数詰めてるとか(VTableとしても使えたなら…)、
G_SIGNAL_ACTIONフラグはただの目印にしかしてない所や、
せっかくGObjectというランタイムタイプシステムこさえてるのに
一部C言語バインディングからしか使えない機能とかあるっぽいところとかGTK+はだせぇなあと思う。
でもGObjectは面白かった。QtのmocやSiGnal/SLOTはいまいちそそられない。

296 名前:login:Penguin mailto:sage [2009/10/24(土) 04:12:11 ID:wG3ZsfW/]
今はValaが熱いよ。GObjectが好きな人なら尚更ハマること請け合い。

>>293
まぁ見ての通りだと思うけど、KDE1.0は衝撃的だったな。KDEが出るまでは
Linux(BSD)は一部のマニアのおもちゃでしかなかったのが一般にも普及しそう
な期待があった。
結局サーバー分野はある程度普及したけど、デスクトップ分野は今も昔も
変わってないけどね。
で、Gnome1.0あんまり記憶がないんだけど見た目はMotifに似ていてダサくて
動作が不安定だった記憶がある。


297 名前:login:Penguin mailto:sage [2009/10/24(土) 12:25:04 ID:9hbzJrW8]
シグナルとかが補完されるエディタってないかな?

298 名前:login:Penguin mailto:sage [2009/10/24(土) 13:28:04 ID:KFtS7ScQ]
>>297
gedit + gtksourcecompletion で、、、
gtksourcecomple.sourceforge.net/
valaでしか試してないけど、一応動く。



299 名前:login:Penguin mailto:sage [2009/10/24(土) 19:23:04 ID:wyOmgHI3]
Gnome 1というとSolarisのイメージがあるなあ
大学の標準装備だった。俺は速攻twmにしたが。

300 名前:login:Penguin [2009/10/29(木) 23:20:42 ID:6yKiv2hH]
これからGTK+を学ぼうと思っています。
主にLinuxで開発するつもりで、AnjutaというIDEを使ってみようと思いますが、
Windowsマシンでたまにコーディングしたいときにはどうしたらいいんでしょ?
Windows版ってありますか?
Linux板で聞くのは変ですが…。

301 名前:login:Penguin mailto:sage [2009/10/30(金) 21:38:43 ID:7aJTkb9U]
>>300
ム板にもスレがあることに気づいて
そこの過去情報を読んだら解決しました。
お邪魔しました。

302 名前:login:Penguin [2009/11/01(日) 17:23:59 ID:qpVzDXQL]
GUIツールキットを比較しつつ、どれがいいか検討しています。
今の第一候補はGTK+ですが、実際に使っている人の声を聞きたいです。
他の候補はQt、wxWidgetsで、言語はC++の予定です。

GTK+
 ・GnomeやXfceで使われているので、ユーザが多そう
 ・ライセンスはLGPL
 ・多くの言語向けのバインディングがあるが、CではなくC++だと少し注意が必要(?)
 ・各OSのネイティブなルック&フィールではないが、テーマによっては近い外観で描画できる

Qt
 ・KDEで使われている
 ・Nokiaがやっていて安心感がある
 ・LGPL、GPL、商用版のQPLは制限が非常に緩い
 ・おしゃれな外観(?)

wxWidgets
 ・GUIの他に多くの機能のラッパが存在して便利
 ・ネイティブなルック&フィール
 ・IDE、RADツールが豊富
 ・日本語の扱いにやや難あり(?)

Ultimate++というのも気になりますが、マイナーだし、日本語が使えない問題もあるようです。

これらは自分で集めた情報なので間違ってるかもしれません。
他にメリットやデメリットがあればどうぞ教えてください。
よろしくお願いします!

303 名前:login:Penguin mailto:sage [2009/11/01(日) 21:17:41 ID:lntj8SS+]
C++ならQt

304 名前:login:Penguin mailto:sage [2009/11/01(日) 22:13:27 ID:qpVzDXQL]
>>303
やっぱりGTK+はC++に向いてないということですね。
情報ありがとうございました。

他にも情報があれば皆さんよろしくお願いします。

305 名前:login:Penguin mailto:sage [2009/11/01(日) 22:14:04 ID:TdugBe1j]
つGLUT


306 名前:login:Penguin mailto:sage [2009/11/01(日) 23:32:48 ID:o2Fus8Wv]
>>304
gtkmmいいよ。

307 名前:login:Penguin mailto:sage [2009/11/02(月) 00:05:28 ID:F2TUeYlu]
>>305
GLUTを調べて見ましたが、OpenGLのやつなんですね。
3Dにはあまり興味が無いですが、今後必要になったとき使ってみます。
情報ありがとうございました。

>>306
GTK+はC++との親和性が少し低いけど、gtkmmはC++用で問題ないということですね。
試してみます。
ありがとうございました!

308 名前:login:Penguin mailto:sage [2009/11/03(火) 01:21:46 ID:Vebc7itB]
rubyでgtkプログラムをしたいんですけど、何かいい開発環境はないですか?
gladeとかでみためは作って変換できるのですが、中で実行するシグナル(っていうんですかね)がどういう感じで使えるかというのがわからないので
調べ調べになってしまいます。通常使ってるのはemacsとnetbeansです。これに似た、もしくはその上で動かせるものはありませんか?
補完とかできたらうれしいのですが。



309 名前:login:Penguin mailto:sage [2009/11/03(火) 19:55:27 ID:0PVkcWZ9]
逆に「gladeとかでみためは作って変換できる」の部分を
詳しく教えてほしい。

310 名前:login:Penguin mailto:sage [2009/11/03(火) 20:05:58 ID:DNzdCjrE]
gtk-builder-convertのことかな?

311 名前:login:Penguin mailto:sage [2009/11/03(火) 22:30:31 ID:1H0HUjWH]
ruby-glade-create-template とかあったよな.

312 名前:login:Penguin mailto:sage [2009/11/04(水) 08:03:24 ID:03fE0NL7]
クラスライブラリのリファレンス(英語)なら公式サイトでrbbrっていうサンプルアプリとして
置いてあるけど、そういうことじゃないのかな?

313 名前:308 mailto:sage [2009/11/05(木) 02:27:28 ID:Cf0Et12U]
>>309-311
311さんが言ってるみたいにruby-glade-create-templateで作ったgladeファイルを.rbに変換して
オブジェクトは作ったからメソッド書いて自分の思うような動きを作ってちょうだいな。みたいなところまではできます。
しかし、rbファイルを編集するときにrequire 'gtk2'をよんでいるのにemacsでもnetbeansでも補完してくれませんでした。

>>312
rbbrは使ってるOSにパッケージがあったのでそれを入れてみましたが。リファレンスを引けるようになりました!
リファレンスが引けると言うことは補完もできるのでは?と今悩んでいる状態です。

314 名前:309 mailto:sage [2009/11/06(金) 12:34:31 ID:pFNFtZEf]
>>310
>>311
>>313
サンクスです。ググったら
Ruby/Gtk2のチュートリアルに書いてあるね
規制でタイミング逸して返事書かなくてすまん

315 名前:308 mailto:sage [2009/11/06(金) 17:32:52 ID:1VLamOE6]
>>309さんはどんな感じでコードかいてますか?
リファレンス見ながらかいている感じですか?

316 名前:login:Penguin mailto:sage [2009/11/07(土) 07:20:09 ID:PbDi/n2M]
>>302
亀レスながら俺も検討中なので...
GTK+はこれからやってみるので置いといて、

Qtはさすがに良くできてるけど、簡単なことをやろうとしても多くのクラスを
使わなければならず、また抽象的な概念みたいなもの(データモデルとか
データアイテム)とか出てきて、簡単に「サクッ」と作る感じではないので、
習得に時間が掛かりそう。「エキスパートのための高級品」のイメージ。
ウィジットの種類も豊富だし、一つのウィジットが多くの機能を持っているので
困ることはなさそう。

wxWidgwtsは確かにツールが豊富だけど、決定版と言えるものはイマイチ
ない気がする。wxDev-C++が導入簡単だけどデバッガーが環境や条件に
よって動作しないトラブル発生中。もう随分前に発覚したのになかなか
直らない。Delphiで書かれていて、近くC++に移植が予定されているようだ。
使えるのはCode::Blocksかな?

wxWidgwtsはQtよりは理解しやすいと思う。日本語の扱いは別に問題ないよ。
ウィジットの種類は豊富だけど、肝心なものがなかったり...
俺はスピンボタンつきの数値専用エディットボックスで、実数を
扱いたかったんだが、これが標準ではない。3rd Party製があるけど、
IDE/RADで、非標準のウィジットを簡単に取り込める仕組みを
持ったものがないので、結局手で書くしかなくて面倒。

Ultimate++は使い勝手が良くない。というかユーザーインターフェースの
設計が下手で、直感的に使えない。それと日本語の扱いに問題がある。
Windowsの話だけど、エンコーディングにCP932(SJIS)が選べないので、
utf-8にするしかない。それでもC++版Hello World!を「こんにちは 世界!」
にして実行したら文字化けしたので、カッとしてアンインストールして
しまった。

以上、ご参考まで。

317 名前:login:Penguin mailto:sage [2009/11/07(土) 07:40:28 ID:h9ilEYN9]
Lazarus とか。 

318 名前:login:Penguin mailto:sage [2009/11/07(土) 07:53:25 ID:wJdSUuBx]
gtkmmを薦めてるのがいるが真に受けんように
C++でまともに動いたら、scim-bridgeみたいなモノを作る羽目にはならん



319 名前:login:Penguin [2009/11/07(土) 11:52:06 ID:CPjNRklA]
面白いのはわかるが、今更そんなんやったって・・・
激しくつまらんけど、これからはAIRですよ

320 名前:login:Penguin mailto:sage [2009/11/07(土) 13:30:53 ID:pZqg2eyF]
いや、これからはJavaですよ
作ってて面白いしね


321 名前:309 mailto:sage [2009/11/07(土) 15:04:13 ID:pqmmO2Ng]
>>315
そうだね。
オンラインリファレンスを地味に検索しながら
emacsのruby-modeで書いてるよ。
methodsとかのメソッドで確認したりするぐらい。
emacsで構文解析してメンバ関数だのメソッドを補完する環境って無いんじゃないかな。
無作為に辞書から補完するのはあるかもしれんけど。
netbeansはよく知らない。
Ubuntuだと「追加と削除」からリRuby Browserというリファレンスビュワーが落とせるよね。
これはRuby/Gtk2のクラスも見られたと思う。

322 名前:login:Penguin mailto:sage [2009/11/07(土) 19:56:24 ID:nXIVDau4]
型がなんでgintやgcharなの?
intやcharではダメなわけ?

C言語とのこういうちょっとした違いは
他にもいろいろあるの?


323 名前:login:Penguin mailto:sage [2009/11/07(土) 20:43:43 ID:P9pTNgo8]
> 型がなんでgintやgcharなの?
移植しやすくする為の措置じゃなかったっけか

324 名前:login:Penguin mailto:sage [2009/11/07(土) 21:04:17 ID:nXIVDau4]
「g」が付いてるほうが移植性が高いのかねぇ。

みんなはそういうのをどうやって覚えたの?
解説本とかあまり売ってないみたいだけど…。

325 名前:login:Penguin mailto:sage [2009/11/07(土) 21:25:19 ID:NL8bJnRF]
>>nXIVDau4
たとえばlongが64bitの環境でも、glong的に32bitであってほしい場合にlongの代わりにintやint32をtypedefするとかな。
データ構造の隠ぺいとかはWeb上の先人の残した情報だったり、技術書立ち読みだったり、Win32やNSPRとか同じことやってる実例を見たりとかで知ったよ。

326 名前:login:Penguin mailto:sage [2009/11/07(土) 22:58:20 ID:FPX1oLqZ]
>>324
C言語はintとかの定義に幅があるから
コンパイラが違えばintのサイズも異なったりするので
厳密に定義した独自のintを用意するわけですよ

先月出た本はどうでしょう
www.amazon.co.jp/dp/4274067769

327 名前:login:Penguin mailto:sage [2009/11/07(土) 23:54:07 ID:Iq2jGS9i]
gint32、とかにした方が判りやすいのに

328 名前:login:Penguin mailto:sage [2009/11/08(日) 03:02:52 ID:A1QtHV1W]
>>325-326
なるほど、なんとなくわかった。
ありがと。チュ!

本は今度本屋で見てみる。




329 名前:login:Penguin [2009/11/08(日) 22:19:03 ID:A1QtHV1W]
GTK+をこれからやろうと思ってますが、C++よりC言語のほうがいいんでしょうか?
昔CもC++も少しずつかじりましたが、どっちも中途半端に終わって、今は頭の中でゴッチャになってます。
GTK+を始めるこの機会にどちらかをちゃんと勉強するつもりですが、どっちがいいか迷ってます。

CよりC++のほうが言語として優れていたり、C++を覚えたほうが何か有利だったりするんですかねぇ?
gtkmmというのを使えばC++でもいけるんですよね?
何かアドバイスをもらえればうれしいです。

330 名前:login:Penguin mailto:sage [2009/11/08(日) 22:48:08 ID:iZONJSh7]
>>329
有利かどうかでいえば、一山いくらのプログラマとしても仕事に付けるかという観点ではC++/Java/PHP/VBあたりだろうな。
有利不利なんぞを気にするんなら間違ってもWindowsかWebアプリ、携帯以外見向きもしないほうがいい。GTK+なんかもってのほかだ。

マジレスするなら、C++にあまり慣れてないならCでGTK+やるのがいい。
ついでにPythonあたりも齧っとけばC+GTK+で面倒な部分もこなせるし、Linux方面のプログラムを開発するのに不自由はしないだろう。

331 名前:login:Penguin mailto:sage [2009/11/08(日) 23:24:58 ID:3wmSljPh]
>>329
Cはスーパーマクロアセンブラ、C++になって高級言語の仲間入りっつー感じかな。
ある程度規模の大きなプログラム作るんなら、絶対C++の方が有利。
Cははっきり言って時代遅れ。C++は習得しておいた方がいいよ。
組み込み系なんかだと、また話は変わってくると思うが。

GUIツールキットだって、殆どのものがC++を念頭に置いて作られてる。
Cが標準でC++ラッパーを後付けしたのはGTK+くらいなもの。
まぁ、それだけ歴史が古く、練り上げられてるとも言えると思うけど。

332 名前:login:Penguin [2009/11/09(月) 00:10:55 ID:xrkj026G]
>>330-331
どうも!
「C++に慣れてないなら」っていうのはオブジェクト指向が壁になるかもしれないってことですかねぇ。
一応JavaやPHPもちょこちょこやってるので、理解はしてます。

お二人の意見を合わせると、C++のほうがいいけど、慣れてなかったり自信がなかったりする場合は
Cにしておくのが無難ってとこですね。

もうちょっと考えてみます。
とても参考になりましたー!


333 名前:login:Penguin mailto:sage [2009/11/09(月) 00:31:21 ID:GPAwpvGp]
>>332
オブジェクト指向が壁になるからではないよ。ほぼ1からC++とGTK+(とgtkmmの固有事情)やるよりはCとGTK+のほうが楽かなとね。
一応gtkmm以外にもJavaとPHP向けのバインディングがあるから、Cでやるのが面倒なようならそれぞれJava-Gnome/PHP-GTKで調べてみるといい。

334 名前:login:Penguin mailto:sage [2009/11/09(月) 01:09:23 ID:GiNGaxO1]
gtkmmの固有事情くわしく

これから始めようと思ってるんだけど
>>132, >>318とか見ると気になる

335 名前:329 [2009/11/09(月) 01:13:18 ID:xrkj026G]
>>333
Cのほうがやっぱ楽なんですか。
といいつつC++も捨てがたいけど、>>334さんと同じくgtkmmの固有事情が気になります。

JavaやPHPのやつも存在は知ってましたが、CかC++でアプリを作れるようになりたいなぁと思ってて…。

336 名前:login:Penguin mailto:sage [2009/11/09(月) 01:49:16 ID:9bGbNsmw]
>>333, >>334

>>132, >>318の言ってることについては心当たりないが、GtkTreeIterだかのバインディングにメモリリークのバグがあるとかいうブログの記事を見たことがある。
固有事情とは言いすぎた。GObjectの仕組みに加えてC++のオブジェクトとの絡みで素のGTK+より覚えることが多くなるかなと思った故の発言だ。

>>334
C/C++ともほぼ未経験なら日本語ドキュメントや和書もある素のGTK+のほうが理解しやすいのではと思ってC+GTKを勧めたが、単純にGTK+のウイジェットを使ってウィンドウアプリケーションを作るならgtkmmのほうが楽なはずだ。
素のGTK+をCで使用する場合、頻繁に型キャストのマクロを使うし、新たなウィジェットを作成する際にはGObjectの動的型システムを素で使うことになるからその点面倒だ。
gtkmmであればその点いくらか楽ができる。だが、ほかの言語バインディングでも使えるウィジェットを作成するとなると素のGTK+の動的型システムの流儀も触れる必要があるから、C++の知識に加えてGObjectの仕組みも知る必要がでてくる。

Javaをある程度使えて、GObjectの動的型システムには触れずにウィンドウアプリケーションを作りたいということであれば改めてgtkmmのほうを

337 名前:login:Penguin mailto:sage [2009/11/09(月) 09:55:18 ID:H/aMIY+I]
わざわざPerlで扱ってる変態もいるしな


338 名前:login:Penguin mailto:sage [2009/11/09(月) 10:14:55 ID:LeSNQMah]
>>335
俺は Python でやってる。
C を使っている gtk+ プロジェクトだったら C で書く。
そんなに違いはないし、簡単。

Cだとヘッダーにいちいちプロトタイプ宣言しなければならなかったり
毎回コンパイルしなければならないのが面倒だからPython使ってる。
楽チン。



339 名前:login:Penguin mailto:sage [2009/11/09(月) 15:19:07 ID:dkYv1Xb9]
>>337
ぇー最近perlでGTK触りはじめたけど、変態じゃないやい><

340 名前:login:Penguin mailto:sage [2009/11/09(月) 15:40:43 ID:nWvFWYHF]
とにかく完成するのが目的なら自分の好きな言語でいいじゃん。おれはRubyだぜ。

341 名前:login:Penguin mailto:sage [2009/11/09(月) 18:21:40 ID:EMO5BJHN]
GTK+はバインディングが多いのがいいよね

342 名前:login:Penguin [2009/11/16(月) 16:13:58 ID:VCRzBqJE]
なんだかんだ言って、Cのコードは寿命が長いんだよね。
コストベーシスで考えると、GTK+の場合は全てCで書いた方が
いいと思う。他のメジャーなソフトはほとんどCだし、
インテグレーションもし易いよね。


343 名前:login:Penguin mailto:sage [2009/11/16(月) 17:18:31 ID:gFc8JNPu]
Cは初心者向けの本を昔読んで、当時はなんだか難しいなぁって思ったけど、
GTK+に挑戦したくてもう一度読んでみたら大して難しくなかった。

配列、関数、ポインタ、構造体の使い方の基礎がわかってたらGTK+を扱える?
この程度の知識で始めるのはなんか怖くて・・・。

344 名前:login:Penguin mailto:sage [2009/11/16(月) 17:21:51 ID:VCRzBqJE]
GTK+なら、型が決まっているから、
ほんとに基本的な知識だけで十分だと思う。
マクロやプリプロセッサもよく使われているけど、
非常にシンプルなコンセプトだし、問題ないとおもう。

345 名前:login:Penguin mailto:sage [2009/11/16(月) 20:35:58 ID:gFc8JNPu]
>>344
どうも!
今年中に始めよーっと!!

346 名前:login:Penguin mailto:sage [2009/11/16(月) 21:19:38 ID:tJXAF2DJ]
もう「今年中」とかいうセリフが聞かれる時期になったか。

347 名前:犬山ぽち丸 mailto:sage [2009/11/19(木) 00:11:09 ID:CpUTPEU6]
Perl でこんな感じのを書いてみました。
ttp://pochimaru.seesaa.net/article/132639898.html

次ページ移動ボタンをクリックする事で次ページを表示したいのですが、
このままでは期待するように動きません。
現時点の表示をクリアして次ページを表示するにはどうしたらいいのでしょうか?


348 名前:login:Penguin mailto:sage [2009/11/19(木) 05:10:52 ID:kHCd9OdN]
# perlって聞いた時点で見る気なくした



349 名前:login:Penguin mailto:sage [2009/11/20(金) 14:06:49 ID:TNyOV+9k]
DrawingAreaをAspectFrameで包むと上下左右に、
GNOMEでは1ピクセル、
Fluxboxでは2ピクセル隙間が開くんだが、なんとかならないものか

350 名前:349 mailto:sage [2009/11/20(金) 14:52:09 ID:TNyOV+9k]
set_border_width(0)でもだめだった

python-gtk2 2.16.0
python-glade2 2.16.0
gtk 2.18

351 名前:login:Penguin mailto:sage [2009/11/21(土) 12:33:26 ID:cf2l5sy0]
gtk2.18.3をubuntu9.10でやっているんですが
キーを押し続けている状態を知る事はできないんでしょうか?
今はkey-press-eventとkey-release-eventシグナルを使っているんですが
キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて
押し続けている状態を知る事ができません。

352 名前:login:Penguin mailto:sage [2009/11/21(土) 15:35:08 ID:zEcsEEOn]
key-pressのあとにkey-releaseがなければ押し続けていることになる

353 名前:login:Penguin mailto:sage [2009/11/22(日) 01:06:56 ID:EckaNW4z]
>キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて
押しつづけているのにrelease-eventがくるとかキーボードぶっこわれてるんじゃね

354 名前:login:Penguin mailto:sage [2009/11/22(日) 08:57:13 ID:OlBHF5u9]
>>351
Xのレベルではそれが通常の動作(モディファイアキー(の一部)以外では)。
Xはautorepeat時にKeyReleaseと続くKeyPressでタイムスタンプを同一にして
送ってくるので、GDKはそれを利用して>>352のように見せるコードが
一応入ってはいる、が、環境や同時に利用するプログラムといった条件によっては
それが働かないみたい。
自分の環境だけ考えるならGDKの該当部分に手を入れて常にその動作をするように
してしまうのが簡単。そうでないならやはり同様に次のイベント
(gdk_event_peekで得るのかな)とそのタイムスタンプを見て判断するんじゃないかと。

355 名前:login:Penguin mailto:sage [2009/11/22(日) 11:40:29 ID:xNfLAKy+]
>>352
>>353
>>354
レスありがとうございます。
gdk_event_peekはnullが返ってきたのでダメでしたが
gdk_event_getはタイムスタンプ同一のメッセージがしっかり返ってきました。
おかげさまで上手くいけそうです。

356 名前:login:Penguin mailto:sage [2009/11/22(日) 22:53:53 ID:LzN5AhP5]
>>347
こんな感じでどうでしょう?

163a165,168
> my $currentObject = $scrolled_window->child;
> if($currentObject) {
> $currentObject->destroy;
> }
204a210
> $drawable->show;
224a231
>


357 名前:犬山ぽち丸 mailto:sage [2009/11/26(木) 19:27:51 ID:bDLkSh53]
>>356
動かしたいように動かす事が出来ました、ありがとうございます。
とても基本的なところで躓いてしまってたみたいで、お恥ずかしい限りです。


358 名前:login:Penguin mailto:sage [2009/11/27(金) 20:56:42 ID:w3OKtepz]
GtkWidget
↑ ↑
GとWが大文字
これに気付くのに4日掛かった
コンパイルが通って空のウィンドウが表示されたときは
雄叫び上げちゃったよ。



359 名前:login:Penguin mailto:sage [2009/11/27(金) 21:30:47 ID:RzRcFxle]
www

とりあえず、なんだ、おめでとう

360 名前:login:Penguin mailto:sage [2009/11/27(金) 21:51:12 ID:HBGtWPJy]
Debianスレで GTK+ でウィンドウ出すのに四日かかったって言ってた人かw

361 名前:login:Penguin mailto:sage [2009/11/29(日) 00:46:08 ID:guffPLRY]
おめでとう、マジで
さぁ早くシグナルをコネクトしまくる作業に戻るんだ

362 名前:login:Penguin mailto:sage [2009/12/01(火) 22:14:30 ID:sy3qzyYB]
>>361
ぬるぽっ!

363 名前:login:Penguin mailto:sage [2009/12/01(火) 22:23:34 ID:xoJE4V4A]
>>362
ガッ
って言ってほしいのね。
もぉ、寂しがり屋さんなんだからぁ。

364 名前:login:Penguin mailto:sage [2009/12/05(土) 20:49:17 ID:CO55p0ew]
なんでこのスレ過疎ってんの?
プログラマー不在のスレなの?

365 名前:login:Penguin mailto:sage [2009/12/05(土) 21:08:39 ID:Gmpm8vF/]
>>364
そう思うならまず率先して何かを作って公開してみては如何でしょうか?


366 名前:login:Penguin mailto:sage [2009/12/06(日) 00:50:56 ID:fNpRY7Ok]
話題がないだけでしょ。

367 名前:login:Penguin mailto:sage [2009/12/07(月) 17:19:37 ID:CENTWTgC]
良くも悪くも枯れてるからな

368 名前:login:Penguin mailto:sage [2009/12/07(月) 20:01:28 ID:LkAo4E7O]
gtk2hsで書いてみたけど思ったより使いやすかった



369 名前:login:Penguin mailto:sage [2009/12/13(日) 11:19:39 ID:naHBDIjP]
gtkで外部装置から受信した温度データをグラフ描画するソフトつくってる。
左3/4が描画領域で残りに現在時刻や表示倍率の設定がある。

連続してデータ受信すると、時刻表示のタイマーがとまったり、倍率設定
のコンボボックスが操作できなくなるので、スレッド分けしようと思うのだけど
expose_eventを別スレッドにすることって可能?

370 名前:login:Penguin mailto:sage [2009/12/13(日) 11:42:32 ID:P93DdDFa]
できそうな気がするけど。
とりあえずやってみたら?

371 名前:login:Penguin [2009/12/16(水) 20:46:38 ID:laS/Dg3j]
>>365
作る気になれるようなことが必要なのではないですか。

372 名前:login:Penguin mailto:sage [2009/12/16(水) 20:51:22 ID:dPFj9y5E]
>>369
すごいですね
勉強のためにぜひソースを見せて頂けないでしょうか?

373 名前:login:Penguin mailto:sage [2009/12/16(水) 20:53:19 ID:dPFj9y5E]
もしくは、ソースリストを公開しているwebページを
ご存知でしたら教えてください。

374 名前:login:Penguin mailto:sage [2009/12/16(水) 20:54:06 ID:6soPE05o]
    ∧__∧
    (´・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"


375 名前:login:Penguin mailto:sage [2009/12/16(水) 21:47:42 ID:c63j0iz9]
受信を別スレッドでやるのが普通じゃないの

376 名前:login:Penguin mailto:sage [2009/12/16(水) 22:44:30 ID:Q8cS+VLW]
ブロックする可能性のある処理は別スレッドにしないと止まる

377 名前:login:Penguin mailto:sage [2009/12/16(水) 23:39:53 ID:jaaomSx0]
Exposeを別スレッドって、ぷっ。
さすがLinux。

378 名前:login:Penguin mailto:sage [2009/12/17(木) 02:29:15 ID:F8Jdsro2]
何がおかしいのかよくわからん。



379 名前:login:Penguin [2009/12/26(土) 01:54:27 ID:XiSC9KS7]
GTK+の本を買おうと思うんですけど、この2冊だとどちらがいいですか?
・入門GTK+
・Foundations of GTK+ Development

プログラミングはCの基礎がわかっている程度です。
PHPもやってます。

380 名前:login:Penguin mailto:sage [2009/12/26(土) 13:18:25 ID:6MLS1ve1]
両方買えばいいじゃない。
あと、入門GTK+の方は作者がホームページで
本の内容を公開し始めてる

381 名前:login:Penguin mailto:sage [2009/12/26(土) 14:29:39 ID:YM2nDrzN]
Foundations of GTK+ Development は一部 google books にでてる

382 名前:379 mailto:sage [2009/12/27(日) 00:54:04 ID:HfaPMpb7]
>>380
両方買うと、結局一冊は読まないままになったりするタイプなので…。
あと、書籍代はケチるべきじゃないと思いますが、深刻な金欠状態なのです。

入門GTK+の作者サイトでの公開について、情報ありがとうございます。
休暇中に目を通してみようと思います。

>>381
Amazon USのレビューで「ネット上で読める」と書いてあったので、どこにあるのか気になってました。
書店になくて立ち読みできなかったので、Google Booksで読んで判断します。

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

383 名前:login:Penguin mailto:sage [2009/12/27(日) 08:12:49 ID:Ri5kV8GM]
GTK+は公式チュートリアルが結構充実している方だと思うので、
それ読めばとりあえずリファレンスとサンプル眺めつつ使えるようになる。

それでも本が欲しくなるならあるウィジェットの使い方を
詳しく書いていて欲しいだとかマルチスレッドとの兼ね合いが
知りたいだとか(あまりいい例が出てこなくてすまん)
求めるものがはっきりしてくると思うので、
それから本を選んでもいいんじゃないだろうか。

384 名前:379 mailto:sage [2009/12/27(日) 20:27:25 ID:HfaPMpb7]
>>383
公式チュートリアルのことを知りませんでした…。
ダウンロードできたので、スマートフォン等にコピーして移動中でも読めそうです!
プリントアウトして持ち歩くのもいいかもしれません。
最終更新日が2002年10月27日と古いんですけど、問題ないですよね?

書籍を買ったほうが最後まで読みつづけようという意欲が持てる気がしますが、
とりあえず公式チュートリアルを読もうと思います。

ちなみに「Foundations of GTK+ Development」はGoogle Booksで見てみたら
とても良さそうでした。
「入門GTK+」のほうは著者ページで見つからなかったです・・。

385 名前:login:Penguin mailto:sage [2009/12/28(月) 02:58:56 ID:CtQUEG8Y]
> 最終更新日が2002年10月27日と古いんですけど、問題ないですよね?

……?

公式チュートリアルは
www.gtk.org/documentation.html でズバリ The Official Tutorial といってる
library.gnome.org/devel/gtk-tutorial/stable/
だよ。
GTK+のソースコードのtarball中にも入ってる(docs/tutorial/以下)。

386 名前:login:Penguin mailto:sage [2009/12/28(月) 07:38:54 ID:RlHoBGgo]
>>385
Tutorial Availabilityのページにあるリンク(ftp://ftp.gtk.org/pub/gtk/tutorial)から
ダウンロードしました。

387 名前:login:Penguin mailto:sage [2009/12/28(月) 11:47:38 ID:T0tfWrHc]
自分でいいと思ったならそれ読め。もう知らん。

388 名前:login:Penguin mailto:sage [2009/12/28(月) 22:21:50 ID:Uh78zlUy]
そう言うな。明日になればまたみんな仲良しななしさん



389 名前:login:Penguin mailto:sage [2009/12/28(月) 22:55:34 ID:AK9LsQvN]
>>387 何?どうしたの?

390 名前:login:Penguin mailto:sage [2010/01/09(土) 18:48:59 ID:khh4I0eb]
今日からGTK+を始めてみた
今までwindowsのvisual stdioしか使ったことなかったから、パスさえ通ってりゃ
#g++ hello.cpp
だけでコンパイルをやってくれると思っていた
今日一日かかって`pkg-config --cflags --libs gtk+-2.0`を知って
ウィンドウを出せた
疲れた

391 名前:login:Penguin mailto:sage [2010/01/10(日) 13:16:43 ID:3oa4ldyN]
VisualStudioだってオプションからディレクトリの設定しなきゃ
ビルドすらままならないだろうに、何言ってんだコイツ

ましてやコマンドラインからCL.exe呼び出すんなら、vcvarsall.batなり
vcvarsall.batで設定される環境変数群を、予めユーザー環境変数に定義して
おかなければCL.exeもg++と同じエラー吐いて止まるだろうに・・・

392 名前:login:Penguin mailto:sage [2010/01/10(日) 14:58:37 ID:zlmG+3hJ]
pixmapの背景色を黒くしたキャンバスを作って
その上に画像と文字を描画してて、文字は白

これに対してニコ動のコメント表示/非表示みたいなことをやりたい

文字を描画するときのみXORモードで書いてるんだけど
背景の黒の上に書かれた物は消えるけど、画像の上に書かれた
物は黒抜き去れて残ってしまう

説明わかりにくいかも知れないけど、なんか良い方法無いかな

393 名前:login:Penguin mailto:sage [2010/01/13(水) 03:10:04 ID:hKXsU3qa]
文字を描画しないだけでいいんじゃないの?

394 名前:login:Penguin mailto:sage [2010/01/13(水) 13:45:44 ID:rT8A3kXe]
>>390
チュートリアルとか見てないの?

395 名前:login:Penguin mailto:sage [2010/01/14(木) 01:41:29 ID:2htHqmwQ]
空気の福田はともかく、徳井が苦手でねぇ…

396 名前:login:Penguin mailto:sage [2010/01/15(金) 10:31:57 ID:2tKD4R7l]
GTK+を使って記述されているソフトとしては
gimp以外だとどんなものがありますか?
ソースリストを読んで勉強したいのですが

397 名前:login:Penguin mailto:sage [2010/01/15(金) 11:34:43 ID:+6ILVUJ5]
>>396
ja.wikipedia.org/wiki/GTK%2B#GTK.2B2.E3.82.92.E5.88.A9.E7.94.A8.E3.81.97.E3.81.9F.E3.82.BD.E3.83.95.E3.83.88.E3.82.A6.E3.82.A7.E3.82.A2
www.gtk.org/screenshots.html

398 名前:login:Penguin mailto:sage [2010/01/16(土) 13:06:47 ID:st13uJnk]
2chブラウザのJDとか、画像ヴューアのgqviewとか。



399 名前:login:Penguin mailto:sage [2010/01/23(土) 07:49:03 ID:c81zxfOz]
ツールバーにウィンドを表示しないようにするにはどうすればいいの?

400 名前:login:Penguin [2010/01/26(火) 09:24:59 ID:WUy9SOAf]
 linux 初心者です。C言語はバリバリです(ウィンドウズで)最近、fedora12 に乗り換え、システムを移植中なんですが、
ウィンドウ関連のところで、GTK+なるものが必要とのこと。そこで、インストールしましたが、
実際のソースコードをコンパイルしてもエラーがでます。
 勉強不足の所をご指摘いただけないでしょうか?

gtk+ インストール
yum -y install gtk+
でインストールしました。 800KBぐらいだったと思います。
そこで、次のコードを emacs でコンパイルします。
#include <gtk/gtk.h>

int main( int argc, char *argv[] )
{
GtkWidget *window;
gtk_init( &argc, &argv[] );
window = gtk_winidow_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_show( window );
gtk_main();

return 0;
}
すると、error : gtk/gtk.h: そのようなファイルやディレクトリはありません。
その他これに関連するエラーがでます。
gtk/gtk.h が無いのか、と思って、
もう一度 gtk+ をインストールしようとすると、
gtk+-1.2.10-69.fc12.i686 はインストール済みか最新バージョンです
何もしません
とでます。
...よろしくお願いします。


401 名前:login:Penguin mailto:sage [2010/01/26(火) 11:26:21 ID:TXiGdVqu]
チュートリアルどおりやれば躓かないとおもうんだけどな
gtk2, gtk2-develを入れて
gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0`

402 名前:login:Penguin [2010/01/26(火) 16:11:56 ID:R1nywYDP]
>> 401
 遅くなりましてすいません。返信ありがとうございます。
うまくいきました。
ウィンドウが表示されたとき、感動しました。
でも、emacs からはコンパイルできませんでしたので、リンカーあたりの
設定かな?と思っています。
 何はともあれ、ありがとうございました。


403 名前:login:Penguin [2010/01/26(火) 16:57:00 ID:R1nywYDP]
またまたお願いいたします。
linuxにおいて、
windowsの
SetCursorPos()
GetCursorPos() に相当するものはありますか?
参考リファレンスなど紹介してもらえれば助かります。

404 名前:login:Penguin mailto:sage [2010/01/26(火) 17:26:41 ID:Up0ueX3p]
>>403
ttp://library.gnome.org/devel/gtk-tutorial/stable/

405 名前:login:Penguin [2010/01/26(火) 18:04:33 ID:R1nywYDP]
>>404
 返信ありがとうございます。
...勉強します。

406 名前:login:Penguin mailto:sage [2010/01/26(火) 18:11:45 ID:OKgnAGh0]
>>402
pkg-configコマンドが何なのか調べるんだ。

407 名前:login:Penguin [2010/01/28(木) 14:40:04 ID:YXchBGq5]
はじめまして。GTK初心者です。

困っていることがあります。
gtk_init()でハングするんです。

1. gtk_init()を手動でコール出来るようプログラミングし、rc.localでそのプログラムを起動。
2. xwindow(gnome)ログイン後にgtk_init()をコールさせる。

上記の2の時点でgtk_init()でハングしているらしいです。
(gtk_init()下行のログが出力されない)

原因や対処法をご存知の方いらっしゃいませんか?


408 名前:login:Penguin mailto:sage [2010/01/28(木) 18:04:22 ID:VFHNmy96]
>>407
突っ込みどころが3点ほど。

・rc.localに登録して起動し、さらにログインした後にも起動・・・?

・gtk_init()だけ実行するプログラムを作ったの?
 だとしたら壮大な勘違いをしている。gtk_init()関数が何をする関数なのか調べるんだ。

・「ログ」とは何のログ?ハングしているらしい、では分からないのでソースをUPするんだ。




409 名前:login:Penguin mailto:sage [2010/01/28(木) 18:34:10 ID:YXchBGq5]
>>408
ありがとうございます。すみません、説明不足でした。

ちょっとソースは長いので文書のみで失礼します。

プログラムは、rc.localで起動した時点ではgtk_init()をコールしない作りにしてます。
その後、ログイン後にコンソールから別プログラムを通してプロセス間通信によりコマンドを送信、
そしてコマンドを受信した時点で gtk_init()をコールさせる形にしてました。

ログは、
 printf("call gtk_init\n");
 gtk_init();
 printf("call end\n"); ★
のようにして、★が出力されない感じです。

その後の調査で、どうやら rc.local起動させた場合、環境変数 DISPLAYなどが
全く設定されていないようです。

そこら辺に問題有りかと思っているのですが、なにぶん、勉強不足でして。
時間も無いので質問させて貰った次第です。


410 名前:login:Penguin mailto:sage [2010/01/28(木) 18:40:22 ID:A3FmJC2O]
DISPLAYも何も、Xの起動はrc.localより後なんだぜ?
プログラム分けるんじゃ駄目なんかい

411 名前:login:Penguin mailto:sage [2010/01/28(木) 18:44:27 ID:0EFvnz24]
時間も無いので
時間も無いので
時間も無いので
時間も無いので
時間も無いので


412 名前:login:Penguin mailto:sage [2010/01/28(木) 19:24:50 ID:bFXQct0B]
>>409
「GTK初心者」と言うよりLinux&プログラミング初心者のようですね。

貴方にGTKはまだ早いです。環境変数やXの基本が理解できていないと
説明されても分からないと思いますので出直してきて下さい。

413 名前:login:Penguin mailto:sage [2010/01/28(木) 19:30:37 ID:uG/wS28i]
お金も無いよ
お金も無いよ
お金も無いよ

414 名前:login:Penguin mailto:sage [2010/01/28(木) 19:32:04 ID:YXchBGq5]
>>410
ありがとうございます。
inittabで初期化レベルを分けていることもあり、
てっきりrc.local前に起動処理が走っているかと勘違いしていました。
お恥ずかしい。

>>412
おっしゃるとおりです。
出直してきます。


415 名前:login:Penguin mailto:sage [2010/01/28(木) 21:55:00 ID:WU2RMXov]
>>414
DISPLAYが設定されてなくて、Widget使わないなら、
GObject関係を使うためだけなら、g_type_init ()すれば良いよ。
有名なエラーが出るからgtk_init()使ったってエスパーしてみた。

416 名前:login:Penguin [2010/02/07(日) 16:35:02 ID:jjKybwb6]
書籍「入門GTK+」のP31のプログラムを打ち込み、何度も確認したのですが、どうしても下記のエラーが出てしまいます。
何が間違っているのか、ご教示願います。
gtk-sample.c: In function ‘create_menu’:
gtk-sample.c:64: error: ‘acitons’ undeclared (first use in this function)
gtk-sample.c:64: error: (Each undeclared identifier is reported only once
gtk-sample.c:64: error: for each function it appears in.)

gtk_action_group_add_actionsの値でエラーが出るようです。関係する記述を確認しましたが問題ありません…


417 名前:login:Penguin mailto:sage [2010/02/07(日) 17:08:07 ID:KhA+E7Mu]
エラーメッセージを読んでみましょう
acitonsが宣言されていませんよ
actionsと間違えていませんか?

418 名前:login:Penguin [2010/02/07(日) 17:18:05 ID:jjKybwb6]
>417さん
ごめんなさい、本当に気づきませんでした。エラー文を読んでいたのに…ありがとうございました



419 名前:login:Penguin mailto:sage [2010/02/09(火) 01:35:25 ID:gRID6Pu9]
ググれ秀才

420 名前:login:Penguin mailto:sage [2010/02/10(水) 20:29:31 ID:y7MwWf/g]
gtkmmをこれからやってみようと思ってるけど、
入門GTK+を読みながらC言語で練習するより
最初からgtkmmでC++使ったほうがいい?

gtkmmの入門書がないみたいなので、
取っかかりとして入門GTK+を候補にしてるんだけど…。

421 名前:login:Penguin mailto:sage [2010/02/11(木) 13:48:24 ID:AIMyey0J]
>>420
最終的にC++で書くのが目的なら、↓みたいなところがあるからC++で書けばいいんじゃない。
gtkまわりの日本語の情報が少ないから、言語は違うけどたまに参考にさせてもらってるよ。
book.geocities.jp/gtkmm_ja/docs/tutorial/html/index.html


422 名前:login:Penguin mailto:sage [2010/02/12(金) 15:44:26 ID:DJstgHYM]
>>421
そのサイト見てみます。
ありがとう。

423 名前:login:Penguin [2010/02/17(水) 19:33:47 ID:Ozbv3EUx]
GTK+ 1.2 で作った古いツールを 2.0 で動くように手直ししてるんですが、とりあえず Makefile の中で

# GTK+ 1.2
CFLAGS = `gtk-config --cflags`
LIBS = `gtk-config --libs`

# GTK+ 2.0
CFLAGS = `pkg-config --cflags gtk+-2.0` -DGTK_ENABLE_BROKEN -DGTK_WINDOW_DIALOG=GTK_WINDOW_TOPLEVEL
LIBS = `pkg-config --libs gtk+-2.0`

てな感じでお茶を濁して動かしているんですが、ソースを全面的に 2.0 対応するコストって
どれほどでしょうか?
150本ほどのちまちましたツールがあって、2.0 で起こしたツールが2割程度、後の8割は、
前記のとりあえずリビルドです。

424 名前:login:Penguin mailto:sage [2010/02/17(水) 19:42:41 ID:TkV44uU+]
1.2のランタイムぐらい入っててもいんでない?

425 名前:login:Penguin mailto:sage [2010/02/21(日) 14:06:19 ID:pTXZtDIq]
ちょっと自前で描画しようとすると、gdkとcairoが混在していて
煩雑としてるなぁ。
少なくともGDKの描画関連のAPIはもういらないだろう。
3.0辺りでばっさり消すとかしてもいいんじゃないか。

426 名前:login:Penguin mailto:sage [2010/03/11(木) 00:46:30 ID:Vm2wsjJM]
GTK(+glade)を使ったあるプログラムを
・HP-UXサーバ
・RedHat Linuxサーバ
でそれぞれコンパイルおよび動作させ、
別のLinux端末に表示させたところ、
表示や動作自体は問題無いんだけども、
エディットボックスへの入力で
RedHat Linuxの方は日本語入力を受け付けてくれません。
ちなみに、それぞれに入っているGTKはともに1.2です。
SCIMとかの環境は、一見同じっぽいですが・・・・
どこか見るべき箇所はあるでしょうか?

ちなみに、glade自体も
HP-UXは日本語入力を受け付けてLinuxサーバの方は
日本語入力を受け付けてくれません。
gladeの問題なんですかねぇ・・・?

427 名前:login:Penguin [2010/03/12(金) 16:52:20 ID:sdgtdQtC]
Gtk::Dialogの派生クラスを作成してある条件の時表示させています。
表示後一定期間経過したら自動的にそのダイアログを閉じたいのですが、
どうすればいいのでしょうか。
特にダイアログにこだわっているわけではありません。
何かメッセージを表示 -> 一定時間後に自動的に消去
が実現できればいいです。
よろしくお願いします。

428 名前:login:Penguin mailto:sage [2010/03/12(金) 19:39:46 ID:37m6gC+E]
>>427
g_timeout_add関数ではだめでしょうか?



429 名前:login:Penguin mailto:sage [2010/03/12(金) 19:41:48 ID:WSSuZVVD]
>>428
そこはらめぇーーーー

430 名前:login:Penguin mailto:sage [2010/03/16(火) 23:40:15 ID:u16nCOLZ]
gtk_widget_drawを呼ぶとたまにアプリが落ちる
調べたらgtk2では非推奨になってた
かわりにgdk_window_invalidate_rect使えって書いてあったから
それ使うようにしたら、exposeイベントハンドラに入ったり入らなかったりするようになった



431 名前:login:Penguin mailto:sage [2010/03/19(金) 03:10:05 ID:pTXFbkuH]
Xawで作られたソフトのWidgetをGnomeテーマのスキンっぽく
変える方法ってありますか?Xaw3dみたいな

432 名前:login:Penguin mailto:sage [2010/03/22(月) 18:34:33 ID:gITq0f63]
>>427
作ってみた。たぶん、427はここを見てないだろうけど
#include <gtk/gtk.h>

gboolean timeout(gpointer data){
gtk_dialog_response( GTK_DIALOG(data), GTK_RESPONSE_ACCEPT );

return FALSE;
};

int main (int argc, char **argv){
guint tag;
GtkWidget *dialog;

gtk_init (&argc, &argv);

dialog = gtk_dialog_new_with_buttons ("My dialog", NULL,
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);
tag = g_timeout_add_seconds( 2, timeout, dialog );
gtk_widget_show_all (dialog);

gtk_dialog_run(GTK_DIALOG(dialog));

g_source_remove(tag);

return 0;
}

433 名前:login:Penguin [2010/05/01(土) 02:23:02 ID:ZoBub0ZC]
あるデータファイルをどんどん読んで処理しながら、1秒に1回その途中経過を
Windowに表示する、みたいなプログラムを書こうとしています。

Windowに表示する部分は、gtk_main()を呼ぶ前に、g_timeout_add(1000, draw, NULL)
のようにしてタイムアウト関数を使えばいいとして、データファイルを読み込んで
処理する部分は、どこに書けばいいのでしょうか?
スレッドとかを使わずにやりたいのですが。

434 名前:login:Penguin mailto:sage [2010/05/01(土) 18:51:28 ID:lTmE6Ym2]
g_io_add_watchとか?

435 名前:login:Penguin [2010/05/01(土) 21:52:51 ID:5eA3cNHe]
LinuxでGTK+やってる人はWindowsでも主にGTK+で書いてる?
WindowsのAPIは使いませんって人いるのかな。

436 名前:login:Penguin mailto:sage [2010/05/02(日) 00:32:37 ID:Bdebw0Wa]
そもそもWindows使いません。

437 名前:login:Penguin [2010/05/02(日) 06:00:37 ID:J+HCMgwe]
>>433
スレッドを使わない方がめんどくさいと思うんだけどね。
ずーっと処理し続けて一秒に一回描画するって事だと
その処理の間は入力受け付け無くてもOK?
その為のスレッドなんだけどなぁ。

シングルCPUでもそう言うことが出来るのがスレッドの良いところ。

それでもスレッドを使いたくないというなら、こまめにシグナル飛ばしっこ
するしかないと思う。


438 名前:login:Penguin mailto:sage [2010/05/02(日) 21:48:38 ID:uNQYZGNa]
簡単なシミュレーション用のGUIラッパ作りたんですが、
Qt4とgtkmmどっちが作るの楽ですか?
どっちもバグてんこ盛りそうで、javaやM$畑に生まれたかった



439 名前:login:Penguin mailto:sage [2010/05/02(日) 22:14:42 ID:WSA7U0rv]
>>438
マジでバグテンコ盛りだからいまからでも上にJava+Swingあたりでやらせてくれって掛け合ったほうがいい。
ちゃんと上にQtもGTK+もバグテンコ盛り過ぎてプロダクションレベルに使えないって直訴するんだぞ。

440 名前:login:Penguin mailto:sage [2010/05/04(火) 08:25:25 ID:i62yYai1]
>>438
vala とかどうか。バグが多いかどうかはプラットフォームに
よる部分も多いと感じるが…win ならC#で組むのが楽だとは思う。

441 名前:login:Penguin [2010/05/04(火) 09:52:32 ID:gZYcN+Ue]
>> 439
使いこなせていないだけじゃないの。

442 名前:login:Penguin mailto:sage [2010/05/04(火) 21:20:07 ID:C0XJN+7X]
なんでこのスレ、ム板じゃないの?
SDLとかはちゃんとム板でやってるのに
なんでGTKはのけ者なの?
いじめに合うの?

443 名前:login:Penguin [2010/05/04(火) 21:28:25 ID:9ORU/lJS]
Gtkプログラミング on Windows!!!
ってスレがム板にあるけど?
pc12.2ch.net/test/read.cgi/tech/1147024203/

444 名前:login:Penguin mailto:sage [2010/05/04(火) 21:36:12 ID:C0XJN+7X]
窓専用じゃん。

445 名前:login:Penguin [2010/05/04(火) 21:47:13 ID:9ORU/lJS]
自分で立てればいいぢやん

446 名前:login:Penguin mailto:sage [2010/05/05(水) 17:49:24 ID:NLGDqQjm]
まぁええやんここにも有っても
どうせ両方見てるし






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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