Gtkプログラミング on Windows!!!
マルチプラットフォームなGUIライブラリでプログラミング! 利点 ・C、C++、Python、Ruby, etc...いろんな言語にも対応してるぞ! ・Linuxに移植するのも簡単だぞ! ・Gladeで楽々GUIデザイン! ・自由!RMSマンセー! ・でも、ライセンスはLGPLだから動的リンクにすればアプリのソースコードを公開する必要は無いぞ! GtkライブラリのバイナリはGlade込みのやつがオススメだぞ。 公式:http://www.gtk.org/ Windowsバイナリ:http://gladewin32.sourceforge.net/modules/news/ gtkmm: C++インターフェイスだ! 公式:http://www.gtkmm.org/ Windowsバイナリ:http://www.pcpm.ucl.ac.be/ ~gustin/win32_ports/gtkmm.html どなたかメモリ節約しつつRuby/GTKアプリケーション動かす方法知りませんか? やっぱ無理なのかなあ。 Ruby+GTKという組み合わせな時点で ある程度メモリ食ってしまうのは仕方ないだろ アプリをGUIで終了させるには正常に終わるのですが、 コンソールからCtrl-Cで終了させると、エラーメッセージが出ます。 どうすれば直りますか。 そりゃそうでしょ。正規の終了方法じゃなくて強制終了なんだから。 >>208 でたらめ吐くな GTKのサンプルくらいなら10M以下で十分動作するだろうが サンプル程度で10Mも喰うなんて 馬鹿なの? タヒぬの? >>212 Ctrl-Cシグナルをフックするハンドラを書いて abortしないようにすれば桶 +window −+vbox −+scrolledwindow −+viewport −+aligment −drawingarea という構成でscrolledwindowの中心がdrawingareaに表示した画像のどの座標 に該当するか分かる方法又は関数ってありますか? GdkのregionってWin32のGDIのregionみたいに色んな図形のとか、 PathToRegionみたいなことできるんですか? こんど新しいQtの本が出るみたいだよ。入門書っぽいけど。GTK+もがんばってほしいなあ。 http://www.amazon.co.jp/dp/4877832211 すみません、さっぱり分からないので教えてもらえないでしょうか・・・。 gtk_pixbufの関数(gdk_pixbuf_new_from_file)を使いたいのですが、やっぱりgdk_initは呼んでないと駄目ですよね? gdk_initって、DISPLAY環境変数がないと動かないようなのですけど、X Windowを立ち上げない状態ではやっぱり無理ですかね・・・。 http://jp.rubyist.net/magazine/?0019-cairo の真ん中あたりには、Xサーバーがなくても動くみたいなことが書いてあります。 この記述はあってるんですか? どうぞよろしくお願いいたします。 >221 CentOSだけど、DISPLAYなくても動くみたい --- ..... g_type_init(); pGError = NULL; pGdkPixbuf = NULL; pGdkPixbuf = gdk_pixbuf_new_from_file(pFile, &pGError); if (NULL == pGdkPixbuf) { fprintf(stderr, "%s:%d:%s\n", pFile, pGError->code, pGError->message); g_error_free(pGError); } else { printf("Open success %s\n", pFile); } ..... --- $ g++ -g 'gdk_pixbuf_new_from_file.c' `pkg-config gtk+-2.0 --libs --cflags` $ export DISPLAY= $ ./a.out tmp.jpg gdk_pixbuf_new_from_file(tmp.jpg) Open success tmp.jpg $ ./a.out tmp.txt gdk_pixbuf_new_from_file(tmp.txt) tmp.txt:3:Couldn't recognize the image file format for file 'tmp.txt' >222 返信ありがとうございます! なるほど、g_type_initを呼ばないといけなかったのですね。 勉強不足でした。 今回初めてlinux上で開発をやらなければならなくてやってるのですけど 難しいですね・・・。英語しかないものが多くて泣きそうです。 本当に助かりました。222さん。 Gladeとgtkmmって全く依存関係ないんですか Win32 用で Gtk+ と Gimp-dev の環境ってどこかにないですか? 環境作るのに疲れました。 MinGW + msys でコンパイルしたいと思ってます。 最初D言語の統合環境で見つけたCode::BlocksがGtkの開発に意外と便利だった EclipseのGTKプラグインってどっかで入手できますか? 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その4 『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』 http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★ > 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0 > まぁ何だ。 > 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw > 100人規模の集団サイバーテロの主犯とか、いろいろとな。 ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください ボタンwidgetの背景色を動的に変えるにはどうすればいいの? これからGTK+を学んでみようと思ってる者っす。 GTK+を使ったWindowsアプリを作ったら、そのアプリの使用するマシンでGTK+が動くように ライブラリか何かを一緒に配布する必要がある? どれを配布すればいいかな。 Sylpheedはインストーラで自動でインストールできるようになってるみたい。 >>1 の動的リンク云々はこの関連の話? 動的リンクってつまりDLLのことかな。 誰かかっこいい人、教えてください。 ライブラリはインストールパッケージにdllを一緒に入れるか staticlinkでなんとかなるんじゃないかな フォントとかも一緒にいるし それ以外にもいろいろいるから 自己解凍インストールにしないかぎり exeひとつだけって訳にはいかないよ 男前な>>258 さん、ありがとう。 スタティックだとソース公開しなきゃいけなくなるんじゃなかった? ダイナミックはOK、スタティックはダメって変な話だから、間違ってるかも。 で、dllはどれを入れるんでしょ? あと、「それ以外にもいろいろ」っていうのは、iniとかreadmeみたいな 自分で作ったファイルってこと? そういうのならわかるからいいけど、システム上要求されるファイルのことがわかんない… >< Sylpheed インストーラの作ったファイルみろ >>240 インストーラが作るファイルって見れたっけ? ま、とりあえすアドバイスありがとう、チュッ! GTK+ってWindowsではあまり使われてないの? 何で〜? wxWindows on GTK があるように wxWindows on GTK on MSW があっても良いと思う JavaのJREみたいに、「これさえインストールすればGTK+を使ったソフトが動きます」っていうような インストーラがあればいいのにね。 ソフトごとにライブラリをパックして配布するなんて面倒い。 あー、全部詰め込むと巨大になるのか。 使ってるDLLだけ実行ファイルと一緒に入れておくのがいいのね。 GTK+って商用で使われてる? 職業プログラマの人たちは、仕事で使ってるんだろうか・・・。 >>247 VMwareとかに使われてるのはよく聞く。 AndroidのUIもGTK+じゃなかったっけ?あと携帯のシミュレータの外側UIにGtk+の1.x系が使われてたってのも聞いたことがある。 >>247 日本医師会が作ってるしょうもないレセプトシステムも昔1.x系が使われてたな。 一応使われてるんだね。 さっそくやってみようかな♪ >>251 逆じゃない? つか、PhotoShopてGTK+だったのか。 >>252 Photoshop ElementsはQt 商用アプリは残念ながらほぼないに等しいと思うけど、 ttp://www.sharp.co.jp/netwalker/ みたいに、Linuxをまんま載せてるものはメインで動いているのは GTK+アプリだよ。 俺のNECの携帯BusyBoxでGTK+1.xだわ 公式ページ探したらソースコード落とせるようになってた 組み込みならGTKけっこうあるんじゃないか? >>255 ライセンス緩いでしょ? 商用だとライセンスが何か障害になる? >>259 書き直さなくても 俺のけつまんこでヌップリ包み込んでやるよ Windows上でgtkmm使ったポトペタ開発を試してみようと思うんだけど,何を用意してどうすればいい のかよくわからない(コンパイラはMinGW希望)。 最初Glade 3をインストールしてみたけど,XMLファイルしか吐かないので,ググって知った情報から Glade 2に代えたら確かにソースコードを吐く機能があったので,C++コードを吐く設定にして実行したら エラーが出た。Cコードなら吐けるみたい。 教えてください。 ちなみに>>183 の情報見といて助かった。アリガト。確かにGlade 3インストールしたら,PATHを見事に「オレ専用」 に書き換えてくれやがったよ。 環境変数をファイルに保存したり読み込んだりするeveというツールを使って復元成功。 >>263 ttp://pc11.2ch.net/test/read.cgi/linux/1188968326/ の227 229に、とりあえず俺が書いた gtkmm + GtkBuilder の サンプルがあるからみてみ。 >>265 GtkBuilderですね。ググっていろいろ見ているうちにわかってきました。 ありがとうございました。 Gladeの動画見てみた http://www.youtube.com/watch?v=vOGK3TveDDk 難しいんだか簡単なんだか、微妙だな GtkBuilderって何? ググってもよくわからん >>267 まだちょっと調べただけなんだけど... 例えば、 つ http://www.nslabs.jp/glade.rhtml GtkBuilderってのは、Glade 3の吐いたXMLファイル(.glade)をリソースファイルとして 読込んで、GUIを構築して例えばボタンを押したときにGlade側で定義したイベントハンドラ を呼び出してくれるような機能をもったライブラリということのようです。 コード自体は結局手で書かないといけないので、Qt Creatorとか、wxDev-C++のような IDE/RADを使うのより手間が掛かるっつーことになります。 って解釈で合ってます?> GTK+使いの人 せっかくXML載りソースファイルがあるんだから、そこからCなりC/++なりのソースコードの スケルトンを生成してくれるツールがあっても良さそうだと思うんですが...無いのかな? C++の場合、仮想関数を利用して、最小は基底クラスのソース(イベントハンドラがvirtual)と、 継承クラスのソースの両方を吐いてくれたりすると便利そう。 以後、GUIを変更した時は基底クラスの方だけ上書きされるようになってれば、継承クラスの方 に自分で書いたコードを壊さずに、変更部分だけ基底クラスの方からコピペすることができます。 ...ってこれ、wxFormBuilderのパクリですが。 >>268 .gladeはGlade独自のUI定義ファイルで、LibGladeってライブラリで使うもの。 GtkBuilderはGtk側でglade相当の仕組みを提供したってところだね。で、Glade3はそのGtkBuilderのためのUI定義を吐ける。 その昔GladeはCソースを生成する機能があったそうだが、バグが多かったりUI定義のXMLを吐くよりメリットが少ないということで削除されたそうだ。 Linux板のGtkスレをみるとruby-glade-create-templateってツールに触れられてるから、テンプレート生成ツールとかないわけではないんじゃないか? >>268-269 よくわからんけど、サンクス。 あなたたちの言ってることが理解できるように精進するです。 >>269 > Linux板のGtkスレをみるとruby-glade-create-templateってツールに触れられてるから、 それってrubyでC/C++のテンプレートを生成してくれるスクリプトなのかと思ったら、ruby/GTK用だったw GtkGlextとかGtkGlextmmのサンプルで pixmap、pixmap-mixedがエラー吐くのは直らんのだろうか? >>183 やられた…俺も消されたッス…>path 環境変数を全然バックアップしてなかった… システムの復元をしてみたら、今度はXPのタスクバーが出ない状態に… タスクマネージャからexplorer再起動してタスクバー出して、 eveを起動してpathのバックアップとって、 システムの復元を取りやめてから消されたpathを再設定して… (´д`) 皆も気をつけろ!と書き込もうとこのスレ開いたら既に報告が上がってて orz くそう…先にその話を知ってれば… Windows版のGtk、ちょーヤベエ。まるでprogram filesを全消去するどこかのエロゲーみたいだ ついでに調べた範囲で書いとくけど、 gtk-2.8.20-win32-1.exe ↑インストール時に環境変数を弄らない設定でも、アンインストール時に問答無用でpathを全削除する gtk-2.12.9-win32-2.exe ↑インストール時に環境変数を弄らない設定なら、アンインストール時にpathは消さない どうも環境変数 GTK_BASEPATH が存在していて、path 中に、%GTK_BASEPATH%\bin が記述されてると、アンインストール時に path を全削除する予感。 インストーラに環境変数を弄らせないで、手作業でpathを追加したほうが安全かもしれない。 巷の Gtk+導入記事の中には、上記2つについて「安定していてオススメ!」と書いてる記事があるので、 俺のような初心者がそれを信じて導入すると、泣きを見る可能性が高い。 とにかくGtk+関連は導入前に環境変数のバックアップを必ず取ること下手すると削除されるぞ! って言っといたほうがいいような気がしたので書いてみるテスト >>274 システムの復元は一番使ってはいけない機能w 俺もアンインストール時にハマったわ よー調べたな 乙 環境変数に関わる問題は昔からあるね。 GTKを扱うアプリはいくつかあるけど(GIMP/Dia/ImageMagik/RubyGTK...etc)、 それぞれによってインストーラにGTKのランタイム(DLL)が付属していたり、 していなかったり、付属している場合にはバージョンは(当然の事ながら)統一されず、 インストーラがインストール/アンインストール処理で環境変数とレジストリを 変更する方法にも一貫性が無い。 Win32版のGTKアプリの配布について、どこかの組織で(gnome.org?) 取り纏めてくれれば解決するんだろうけど、まあ無理だろうね。 自分は問題解決を諦めた。 ランタイムは単独で入れてアプリはGTK無し版を使うのが一番いいのか? アンインストールで環境変数消される問題 自分もはまった なんでこんなひどいことするの? 愛してるから別れないでくれってことだよ言わせんな恥ずかしい/// PATH環境変数問題、つい最近2台のマシンではまったので、調べてみた。 ttp://nsis.sourceforge.net/Talk:Path_Manipulation の一番下 >String size limitation >Please note that NSIS default build has a string limit of 1024 characters. >If the PATH is bigger, this function will replace the whole PATH >instead of just appending to it. >Temporarily you can use the large strings build of NSIS to avoid this problem. >--Shmektse 13:25, 20 June 2010 (UTC) どうやらインストーラに使っているNSISの文字列のサイズ制限でやられるようだ。(GTKに限らずバグ回避策をとっていないNSISインストーラ利用アプリ全般に可能性はある) Ruby-GNOME2が新バージョンでgemに対応したよ。 windows + gtk + mingw + eclipse で始めようと思ったけど 情報少ないんだな >>284 Linux+Gtk系の情報をWindow+mingwに読み替えるスキルない君には無理だね 使いもしないで、風評だけで使えないとかほざく馬鹿ハッケン 話の流れからすると、↓の意味だろう (C言語では)Qtが使えない以上、一番メジャーなのがGTK+ とりあえず、GTK+が駄目な理由を教えてくれ。QtがGTK+よりいい理由でもいいが。 無問題、Windows的にはどちらも駄目だから、何故かと言うとWindowsという存在 そのものが元来クロスプラットフォームとは無縁だったからに過ぎない。 WindowsはなんでもかんでもWindows専用でいい。 Windowsで駄目という事はない。GIMPとかちゃんと動いているし。 見た目がネイティブアプリと違うのはどうしようもないけどね。(特にファイルダイアログ) 一度押したボタンがフォーカス外さないともう一回押せないとか >>298 おまえは一体何を言っているんだ。 Windows7でGIMPを動かしてみたが、至って快適に使えてるぞ。 普通のユーザーだとGTK+で動いている事に気づかないレベルだ。 GIMPが快適… イ`ヘ /: :| ヽ / : :/ ヽ ___ _,,,:. .-: :´彡フ _ノ\_∠: : : : : : : : :`: :-: :,:_:/彡 / ( : : : : : : : : : : : : : : `ゝ / 変 r::/: /: : | : : : : : : : : ::\ / //: /: : : |: : | |: : |: _: : : :ヽ 態 {/ 7|`\/i: /|:|/|´: : : : :|ヽ 〉 ,‐-‐、`|7 || |_::|,_|: : :|:::|: | だ / r:oヽ` /.:oヽヽ: :|: | :| { {o:::::::} {:::::0 }/: :|N 〜 | ヾ:::ソ ヾ:::ソ /|: : | !? ヽ::::ー-.. /ヽ ..ー-::: ヽ::| r--ッ -tヽ/´|`::::::::::;/ `、 ::::::::::: /: i } > ::∧: : :|: |J \ / /::i: | /_ゝ . \ヾ: |::|` - ,, ___`-´_ ,, - ´|: : :|:::| ヽ: |::|\  ̄/ /| |: : :|: | 快適の意味が違う。 俺は絵かきではないんで細かいことは知らん。 このスレがこんなに消費されてることに驚いたわ LinuxでもGUIアプリを動かしたいって需要そんなにあるもんなんかね Qtのスレも意外に活発だしそういう兆候なのかもしれん >>304 on Windowsだぜ? gimp on ms-windowsとか。 >>306 on Windowsだったか 勘違いしてたわアイタタタ Linux板にもスレがあって、ソッチの方が若干こちらより多く消費されてるな read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる