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 >>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板にもスレがあって、ソッチの方が若干こちらより多く消費されてるな >>310 gimpインスコしたけど自分で作ったやつ(ウィンドウ表示するだけのプログラム)起動できないんだけど GTK+3系のwin32用バイナリってどこかにある? そもそも、win32版のGTK+3を1からビルドしてちゃんと動いている人いる? GTK+が糞という事は全く無い。少なくともLinux上ではかなり良く出来てる。 問題はWindows対応が後手後手になっている事だな。 Windows上だって2系列なら問題なし。 gimpで実績有り。 GTK+3.2がリリースされたけど、そろそろWindows用のバイナリを配布してくれ。 MSフォントじゃないとまともに起動しないのが気に食わない public class UserWindow :Gtk.Window{ } こういう感じの事がしたいのですが引数つけろ!と文句を言われます。 どのようにしたら文句を言われなくなりますか? QTが滅びそうだし、これからはGTKの時代。 しかしGTKスレがない不思議。 何度でも言うよ 欠かさず言うよ GTKは糞 君を愛してる qtって死んだのか? photoshopなりchromeなり、メジャーなツール全般で使われてるから、 gtkより遥かに使われている印象だけれど。 もっとも、個人的にはプレーンなc++で書けるgtkmmが好き。 gccとGTKを弄りはじめた。DELPHIが天国に思えたw QtもDELPHIのGUI環境から見れば、やってられねー 昔Kylixというのがあってだな・・w そいやFPCってどうなったんだろ? あ、言いたかったのはLazarusの方だった。まだやってたんだな。 1.0なんて最近出たのかw お、GTK2、QT、Mac OS X Carbon、Android、iOSと結構スゴイことになってるな。 FPCはなんか凄いことになってて、本家Delphiにもクロスコンパイラとして同梱されていたりする。 旧ボーランドの人も多少は関わっていたりするのかな? ヘジルスバーグとか入っていたり? gtkmmは何となく理解できた。 qtやwxWidgetsはマクロを多用するからか理解できなかった。 けれど、ライセンス的な部分から、もし使うならwxWidgets。 ビルドして、exeができたのに、実行したら、DLLがないといわれた DLLいれたら、こんどは、エントリポイントがどうのこうのいわれた >>346 その程度のことに対処できないのになぜGTK+を選択した? 素直に金払って有償ライブラリを使った方がいいよ もっと金を払えばサポートもそれなりにしてくれるよ ていうか金払ってプログラミング講習とか受けた方がいい >>349 またおまえか、巣に帰れ。 しかし、gtkmmが糞なのは同意する。 >その程度のことに対処できないのになぜ うるさいなぁ FPC = Free Pascal Compiler 質問です GTK+2をスタティックでビルドしたのですが、gtk_label_newを定義すると failed to create cairo font face, expect ugly output. the offending font is 'DejaVu Sans 9.9990234375' Pango-WARNING **: font_face is NULL Pango-WARNING **: scaled_font is NULL と表示されてプログラムが強制終了します。これってpangoかcairoの問題なのでしょうか? freetypeもfontconfigもリンクしてあるんですけど…一応簡単な窓なら落ちないです キーのリスナーとキー入力の動作 って簡単ですか? キーバインド変更アプリケーションを作るんで検討しています。 javaのAPI使うより C、C++ & gtkのほうが速いですかね? >>356 JAVAからだったら中で完結した方がいい JNIが遅いから 久しぶりにビルドしようとしたら、x64GCCだとglib-genmarshalが止まって これ使うライブラリが作成できないぞ 使わんからいいけど、いまさらながら依存関係が酷いな GTKやろうとしたけどCairoとかよくわからない周辺のライブラリまで出て来てあんまり手軽じゃないね GTK → AWK Tk → Perl wxWigets → Ruby Qt → Python webkit → JavaScript Macで日本語入力が可能になりそう!Windows爆死www Linux憤死wwwwwwwwwwwwwwwww http://engawa.2ch.net/test/read.cgi/poverty/1368116873/ これ自前で描画してんの? Uiバグったかと思ってビビった gtkは癖がある qtはイベント周りが慣れない winformが使いやすいけどmonoだと遅いw read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる