GTK+プログラミング
ただの Gtk::Window で悪いけど Gtk::Drawingaria でも大差ないはず。 app_window.glade は GtkBuilder 形式の xml ね。 大体こんな感じが典型的な処理だと思うよ。 >>226 > イベントとかどうやってつなげたらいいのだろう > イベント処理で書かないと無理だよね? drawareaをeventboxの上に乗せないとダメじゃなかったっけ? # と、テストもせずにカキコ 有難う、私が書いていたのと大分違うみたい 少しずつ見てみるよ ちなみに AppWindow みたいに Gtk::Widget を継承している場合は、単に class AppWindow : public Gtk::Window { public: virtual void on_show() { cout << "表示された" << endl; } }; みたく仮想関数をオーバーライドするだけでいいんだけどね。 ただ、これもトップレベルのウィンドウのイベントしか反応できないから、 >>229 のコンストラクタみたく cast_static なんかでボタンとか取得して、 自分のメソッドを connect していくのが C++ っぽい書き方な気がする。 >>227 コンパイルしてみたけどエラーで落ちてしまったよ m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1")); これってどんな意味かな? 結局こんな感じに書いてつながったけど、何かモヤモヤするよ 複雑になってくると小汚くなりそうだなー 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 ) ); 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(); }; >>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 がないと駄目だよ。 それで落ちてるんじゃない? >>235 別にそんな小汚くはないと思うけど。大体そんなもんだよ。 >>236 MyDialog は Gtk::DrawingArea を継承してもいいかも。 それと on_* は protected の方がいいよ。 >>234 適当なGtk::WindowのGUIを作って読み込ませたんだけど それがうまく行ってなかったのかもしれない 色々有難う GtkBuilderを使わない方も少しいじってみるよ Gtk::SpinButtonを浮動小数点表示にする事は出きますでようか? cairommでバックバッファを使った描画はどうすれば良いのでしょうか? save(),restore()は少し違うような気がして・・・ GTK+onDirectFBをインストールしようと思ってDirectFBのサイトに行こうとしたら なぜか繋がらないんだけど誰か教えr・・・教えてください。 ttp://www.directfb.org/ URLも貼っておきます。 繋がらない、マジで誰か教えてください GtkGLextmm を使っている人はいますか? 実装具合とか、こっちのライブラリの方が良いよとかありましたら教えて頂きたいのです。 超初心者なのでMesaとかとの違いも分かりませんがGtk繋がりと言うことで宜しくお願いします。 独自処理のバッテリー残量表示のために Ruby/Gtk2でGtk::StatusIconを使ってみたんですが、 tooltipは付けられても、どうもlabelを付けることができなさそうです。 通知領域にテキストないしはアイコン+テキストを表示したいのですが、 どんなクラスを使えばいいんでしょうか? リファレンスを見た限りではちょっと見当が付きませんでした。 Gdk::Pixbufにテキストを動的に描画するのかな。 >>243-245 DirectFBのソースをDLしようとオフィシャルサイトを開こうとしたけど、まだサーバが落ちたままだね・・・ 9/14頃から落ちてるっぽいからメンテナンスにしては長過ぎだよね。 もしかしてDirectFB終了フラグON? >>249 今はつながってる。digしたら212.227.87.76だった。 GTK+2.18記念あげ ウィンドウの管理すらGDKで行なうようになり、ちらつきを減少させたり ウィンドウの変形やアニメーションを行なえるようになったり、別の (Clutterのような)描画ライブラリの中に簡単に埋め込めるように なったりしたようだ。 他にも、各プラットフォーム毎に実装していたウィンドウを管理するコード を共通にする事ができるようだ。 WindowsやMacOSXでの動作が改善されたらいいなと。 gtkmmで複数のウィンドウを開くプログラムは作れますか? イメージ的にはGIMPの様なコントロールが有って描画画面が有る感じ gtk+を使えば出来るのかな? やり方が分かったの報告(するまでもないのかな・・・) Gtk::Windowを継承したクラスをインシタンス化して hogehoge.show() で表示されました。(バカみたいな話でお恥ずかしい) Failure to compile 64 bit gtk on mac os http://buffalothedestroyer.blogspot.com/2009/07/blog-post.html >Attempted to install gtk+-2.17.2 on my mac. Had to install: http://www.nabble.com/Gtk-issues-td23803508.html mac 環境だと gtk は使えないんだろうか…? >>255 Leopard だけど、MacPortsからインスコできたよ。 Ruby/GtkとPyGtk用にと。 http://www.amazon.co.jp/ 入門GTK-菅谷保之/dp/4274067769 webの情報をまとめた程度らしいけど gtkmmも扱って欲しかったかな Gtk+2 で初の和書じゃないの。出るだけで価値がある Gtk::SpinButtonの値が変更された時に発生するイベントを一時的に停止することは出来ますか? 複数のGtk::SpinButtonが変更されるのが分かっている場合に一時的に停止して 手動でアップデートしたいのです。 >>258 gtk2hsも扱って欲かったwww 買うけどなwwww QtよりGTK+がイイみたいだぬ、GTK+に決めるぬ >>258 そもそも洋書でもgtkmmはないだろ。そんな中で日本語の本なんて奇跡が 起こらない限り無理だろ。 【恐怖の】呆れるほど危険な民主党の正体【民主党】 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 日米規制改革および競争政策イニシアティブに基づく日本国政府への米国政府要望書 http://japan.u ●sembassy.●gov/j/p/tpj-j2●0041020●-50.html#mineika-s ●の部分は外してブラウザのURLに入れること >>258 「入門GTK+」 今日、買ってきたよ。 最近は、Web上のホームページのプログラミング解説の方が分かり 易いとうことが多くなってきているようだけど、 「入門GTK+」を サックっと、50ページくらい読んでみたところ この本は、意外に読みやすいし、わかり易い。 他のプログラミングの習得に挫折した人でも何とかいけそうな感じかな。 QtだとQt CreatorとゆうIDEが使いやすいけど、 GTK+使う時はどんなIDE使うと便利ですか。 >>269 「入門GTK+」では、Anjuta(アニュータ)が紹介され解説されているね。 そうそう、時間があったので qt4の解説書も立ち読みしてきたんだけど、今日買った「入門GTK+」 の方がわかり易かった。 誰か、「猿でもわかるqt4」って本、書いてくれないかな〜 GTK+は使ったときないけど、QtもQt Creatorもすごく使いやすいぬ(´・ω・`) GTK+簡単なら使ってみようかしら。 >>268 読みやすいのか、ボーナス出たら買おうかな。 >>272 C++使えるならQtだけでいいんでない? おれはCしか知らないからGTK… そいつム板のwxスレを荒らしてるキチガイだから放置推奨 Gtk+の場合はGladeってのがある。もちろん簡単。 gladeはもうobsoleteだけどね。今はGtkBuilderを使う glade自体はまだまだ現役だよ。 ただlibgladeはもうobsoloteだけどね。 あと半年たらずでGTK+3が出るこの時期に出さんでもという気もするが。 >>279 HPに公開していたGTK+の第2版までのドキュメントを著書にしたいという願いと、 出版社側での「最近GTK+の本が出ていないので出したい」と言う思わくが一致して GTK+-2の解説であっても出したんでないの。 3Dデスクトップをデフォルトにする方向性はやめてほしい。 Vista も KDE4 も総スカンだろ? CPUのクロックが頭打ちなんだから、プログラマは節制しないと。 CPUのクロックが頭打ちだからこその3D描画だろ GPUにやらせたほうが描画は速い ※適切な3Dドライバがある場合に限る オイラは、普段非力なマシンばかり扱っているから3Dをすると重くてかなわん! GTK+3が出ても当分は、GTK+2を使うよ。 「入門GTK+」を参考にすれば、jpgやgifのイメージビュ-ワが簡単に作れるし 動作も軽いからね。 因みに我が家での、 「入門GTK+」を参考に作ったイメージビュ-ワで 画像 1024x768_16bit_color.jpg(65536色)表示時のメモリ使用量は、 イメージビュ-ワ本体だけの立ち上げ時: 1.25MB 画像1024x768_16bit_color.jpg表示時: 1.25+2.62=3.87MB だった。 Windows だと何十メガとメモリ食うよね。 まあしょうがないんだろうけど。 GTK+3はスルーしてGTK+4まで待つお(´・ω・`) Gtk+3は現状で限りなく3に近づいているから、そんなに変わらない。 The psychology literature certainly has a lot to say about the topic, but economists have a rather simplistic view of the issue. , >実のところ,私はKDE-1.0を見て(日本語は通らなかったものの)デスクトップ分野での UNIXの未来を確信し, >GNOME-1.0を見て目の前が真っ暗になった人なのですが(笑) >当時はQtが改変不可だったために,GTK/GNOMEを選択せざるを得なかった. とあるサイトの人のことばなんですが、詳しいことがさっぱりなので、どういう文脈なのかわかりません 誰か解説していただけたら幸いです。もしこれが荒れるような内容でしたらスルーを… 趣旨は脚注でない本文のほうにあると思うが、 GObjectも定着して成長したし、いまは中の人の評価も少しは違うかも。 まぁGtk+はダサい技術だと思う。でもダサいほうが品質高かったりするわけだが クラス構造体の中に変数詰めてるとか(VTableとしても使えたなら…)、 G_SIGNAL_ACTIONフラグはただの目印にしかしてない所や、 せっかくGObjectというランタイムタイプシステムこさえてるのに 一部C言語バインディングからしか使えない機能とかあるっぽいところとかGTK+はだせぇなあと思う。 でもGObjectは面白かった。QtのmocやSiGnal/SLOTはいまいちそそられない。 今はValaが熱いよ。GObjectが好きな人なら尚更ハマること請け合い。 >>293 まぁ見ての通りだと思うけど、KDE1.0は衝撃的だったな。KDEが出るまでは Linux(BSD)は一部のマニアのおもちゃでしかなかったのが一般にも普及しそう な期待があった。 結局サーバー分野はある程度普及したけど、デスクトップ分野は今も昔も 変わってないけどね。 で、Gnome1.0あんまり記憶がないんだけど見た目はMotifに似ていてダサくて 動作が不安定だった記憶がある。 >>297 gedit + gtksourcecompletion で、、、 http://gtksourcecomple.sourceforge.net/ valaでしか試してないけど、一応動く。 Gnome 1というとSolarisのイメージがあるなあ 大学の標準装備だった。俺は速攻twmにしたが。 これからGTK+を学ぼうと思っています。 主にLinuxで開発するつもりで、AnjutaというIDEを使ってみようと思いますが、 Windowsマシンでたまにコーディングしたいときにはどうしたらいいんでしょ? Windows版ってありますか? Linux板で聞くのは変ですが…。 >>300 ム板にもスレがあることに気づいて そこの過去情報を読んだら解決しました。 お邪魔しました。 GUIツールキットを比較しつつ、どれがいいか検討しています。 今の第一候補はGTK+ですが、実際に使っている人の声を聞きたいです。 他の候補はQt、wxWidgetsで、言語はC++の予定です。 GTK+ ・GnomeやXfceで使われているので、ユーザが多そう ・ライセンスはLGPL ・多くの言語向けのバインディングがあるが、CではなくC++だと少し注意が必要(?) ・各OSのネイティブなルック&フィールではないが、テーマによっては近い外観で描画できる Qt ・KDEで使われている ・Nokiaがやっていて安心感がある ・LGPL、GPL、商用版のQPLは制限が非常に緩い ・おしゃれな外観(?) wxWidgets ・GUIの他に多くの機能のラッパが存在して便利 ・ネイティブなルック&フィール ・IDE、RADツールが豊富 ・日本語の扱いにやや難あり(?) Ultimate++というのも気になりますが、マイナーだし、日本語が使えない問題もあるようです。 これらは自分で集めた情報なので間違ってるかもしれません。 他にメリットやデメリットがあればどうぞ教えてください。 よろしくお願いします! >>303 やっぱりGTK+はC++に向いてないということですね。 情報ありがとうございました。 他にも情報があれば皆さんよろしくお願いします。 >>305 GLUTを調べて見ましたが、OpenGLのやつなんですね。 3Dにはあまり興味が無いですが、今後必要になったとき使ってみます。 情報ありがとうございました。 >>306 GTK+はC++との親和性が少し低いけど、gtkmmはC++用で問題ないということですね。 試してみます。 ありがとうございました! rubyでgtkプログラムをしたいんですけど、何かいい開発環境はないですか? gladeとかでみためは作って変換できるのですが、中で実行するシグナル(っていうんですかね)がどういう感じで使えるかというのがわからないので 調べ調べになってしまいます。通常使ってるのはemacsとnetbeansです。これに似た、もしくはその上で動かせるものはありませんか? 補完とかできたらうれしいのですが。 逆に「gladeとかでみためは作って変換できる」の部分を 詳しく教えてほしい。 gtk-builder-convertのことかな? ruby-glade-create-template とかあったよな. クラスライブラリのリファレンス(英語)なら公式サイトでrbbrっていうサンプルアプリとして 置いてあるけど、そういうことじゃないのかな? >>309-311 311さんが言ってるみたいにruby-glade-create-templateで作ったgladeファイルを.rbに変換して オブジェクトは作ったからメソッド書いて自分の思うような動きを作ってちょうだいな。みたいなところまではできます。 しかし、rbファイルを編集するときにrequire 'gtk2'をよんでいるのにemacsでもnetbeansでも補完してくれませんでした。 >>312 rbbrは使ってるOSにパッケージがあったのでそれを入れてみましたが。リファレンスを引けるようになりました! リファレンスが引けると言うことは補完もできるのでは?と今悩んでいる状態です。 >>310 >>311 >>313 サンクスです。ググったら Ruby/Gtk2のチュートリアルに書いてあるね 規制でタイミング逸して返事書かなくてすまん >>309 さんはどんな感じでコードかいてますか? リファレンス見ながらかいている感じですか? >>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!を「こんにちは 世界!」 にして実行したら文字化けしたので、カッとしてアンインストールして しまった。 以上、ご参考まで。 gtkmmを薦めてるのがいるが真に受けんように C++でまともに動いたら、scim-bridgeみたいなモノを作る羽目にはならん 面白いのはわかるが、今更そんなんやったって・・・ 激しくつまらんけど、これからはAIRですよ いや、これからはJavaですよ 作ってて面白いしね >>315 そうだね。 オンラインリファレンスを地味に検索しながら emacsのruby-modeで書いてるよ。 methodsとかのメソッドで確認したりするぐらい。 emacsで構文解析してメンバ関数だのメソッドを補完する環境って無いんじゃないかな。 無作為に辞書から補完するのはあるかもしれんけど。 netbeansはよく知らない。 Ubuntuだと「追加と削除」からリRuby Browserというリファレンスビュワーが落とせるよね。 これはRuby/Gtk2のクラスも見られたと思う。 型がなんでgintやgcharなの? intやcharではダメなわけ? C言語とのこういうちょっとした違いは 他にもいろいろあるの? > 型がなんでgintやgcharなの? 移植しやすくする為の措置じゃなかったっけか 「g」が付いてるほうが移植性が高いのかねぇ。 みんなはそういうのをどうやって覚えたの? 解説本とかあまり売ってないみたいだけど…。 >>nXIVDau4 たとえばlongが64bitの環境でも、glong的に32bitであってほしい場合にlongの代わりにintやint32をtypedefするとかな。 データ構造の隠ぺいとかはWeb上の先人の残した情報だったり、技術書立ち読みだったり、Win32やNSPRとか同じことやってる実例を見たりとかで知ったよ。 >>324 C言語はintとかの定義に幅があるから コンパイラが違えばintのサイズも異なったりするので 厳密に定義した独自のintを用意するわけですよ 先月出た本はどうでしょう http://www.amazon.co.jp/dp/4274067769 >>325-326 なるほど、なんとなくわかった。 ありがと。チュ! 本は今度本屋で見てみる。 GTK+をこれからやろうと思ってますが、C++よりC言語のほうがいいんでしょうか? 昔CもC++も少しずつかじりましたが、どっちも中途半端に終わって、今は頭の中でゴッチャになってます。 GTK+を始めるこの機会にどちらかをちゃんと勉強するつもりですが、どっちがいいか迷ってます。 CよりC++のほうが言語として優れていたり、C++を覚えたほうが何か有利だったりするんですかねぇ? gtkmmというのを使えばC++でもいけるんですよね? 何かアドバイスをもらえればうれしいです。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる