X



Gtkプログラミング on Windows!!!
0001デフォルトの名無しさん
垢版 |
2006/05/08(月) 02:50:03
マルチプラットフォームな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
0010デフォルトの名無しさん
垢版 |
2006/05/08(月) 19:14:20
>>3
古い。まだ完全な日本語訳じゃないけど一応、最新版。
http://mikeforce.homelinux.org/documents/glib-2.8.x-refs/glib/gtk/

>>6
Qtは非常にしっかりしたドキュメントがあるし、qmakeっていう自動化ツールもあるんだけど、C++を拡張してるから
変なメタコンパイルをせねばならん。それにライブラリのバイナリを公式は配布してないから、自前でコンパイルしないといけない。
これがえれー時間がかかるんだ。
0013デフォルトの名無しさん
垢版 |
2006/05/09(火) 01:10:29
Windowsのスキンもなーんか野暮ったいんだよね。おのおののパーツは
Windowsそのものなんだけど、GUIを組み上げてみるとなんかダサいんだよ。
0014デフォルトの名無しさん
垢版 |
2006/05/09(火) 21:38:24
>>10
> それにライブラリのバイナリを公式は配布してないから、自前でコンパイルしないといけない。
> これがえれー時間がかかるんだ。

えー? Windowsの話でしょ?コンパイル済みでダウンロードできますがな。
0016デフォルトの名無しさん
垢版 |
2006/06/02(金) 09:20:25
GDK使って遊んでるけど扱いがややこしいな…
0018デフォルトの名無しさん
垢版 |
2006/06/08(木) 02:13:22
正直、LinuxでGUIプログラムしたい俺には敷居が高すぎて挫折したので
このスレには頑張ってほしい。
0020デフォルトの名無しさん
垢版 |
2006/06/24(土) 11:30:42
>>18
gladeとか使うとなんとかいけるよ。

起動部分、GUI部分、他の処理部分とかってスレッド分けて、各スレッド毎にpipe用意して
スレッド間をpipeで通信とかってやってた。
0021デフォルトの名無しさん
垢版 |
2006/06/24(土) 11:31:27
>>20
あ、Linuxの場合ね
002322
垢版 |
2006/06/24(土) 11:42:47
Linux板だと思った
ごめん
0024デフォルトの名無しさん
垢版 |
2006/07/12(水) 22:14:30
gladewin32インストールして、簡単なメニューとウインドウが開く
プログラム書いてみたのですが、
私の古いパソコン
Pen4-1.7GHz
GeForce2 MX400
Visual Studio .Net 2003のVCコンパイラ
だと、メニューをクリックして、プルダウンメニューが開くまで
1秒くらいかかります。
その間は、メニューに何も文字が描画されません。1秒くらいすると
文字が描画されます。
そういうもんですか?それとも何か私のコーディングが悪いのかな?
0025デフォルトの名無しさん
垢版 |
2006/07/12(水) 22:25:54
>24 の補足です。
メニューの表示は遅いですが、ウインドウに表示しているOpenGLの
描画は、まあ、普通の速さです。なので、メニューの表示だけが遅いです。
0031デフォルトの名無しさん
垢版 |
2006/11/08(水) 21:16:40
Windowsでgtkとか標準以外のライブラリを使うとアプリ毎に
別々にDLLをインストールするからメモリ消費が半端ない。
いろんなバージョンがある上にVisualStudio6と2000x系は
混ぜられないからもういっそスタティックリンクにしてくれと。
0032デフォルトの名無しさん
垢版 |
2006/11/08(水) 22:07:44
gktmmのインストール方法を教えてください。

環境:WindowsXP + Visual C++ 2005 EE
0034デフォルトの名無しさん
垢版 |
2006/11/09(木) 19:52:46
>>32
(ttp://gladewin32.sourceforge.netからgtkを落としてきた前提で)
ttp://www.mapr.ucl.ac.be/~gustin/win32_ports/
から落としてくる
0037デフォルトの名無しさん
垢版 |
2006/12/21(木) 07:48:05
Gtk+はAPIは2.4系のままでどんどん中身がアップグレードしていくからなあ。まあエンバグするときもあるけど。
0039デフォルトの名無しさん
垢版 |
2007/01/11(木) 23:49:24
gtkmmって意外とあんまり使われてないんだな。GNOME標準アプリはCで書かれてるものが多いし。
標準でいれてしまえばいいのに。
0040デフォルトの名無しさん
垢版 |
2007/01/23(火) 09:46:27
bmpxなんてgtkmmなんだな。しかもboostなんて使ってるし。
もっとも最近のlinuxのプレイヤは
audaciousになりつつあるな。
0042デフォルトの名無しさん
垢版 |
2007/02/07(水) 17:22:05
MACでも使えますか?
0044GIMP調査隊
垢版 |
2007/02/14(水) 16:08:09
Linux板のKNOPPIXスレから移ってきました。

現在
ttp://ftp.ieunet.ie/mirrors/ftp.gimp.org/pub/gimp/v2.3/
で手に入れたgimp-2.3.9のソースコードを見てGIMPの画像のデータ構造を調べています。
gimp_get_type()という関数の宣言はあるのですが定義が見つからず困っております。
もしかしたらmakeできないのでは?と思ってしまいました。
以前、cygwin+mingwn+gcc相談スレでもKNOPPIXスレでもmakeについて聞いたのですが
よくわかりませんでした。
cygwin+mingwn+gcc相談スレでこちらを紹介されてきました。
makeの方法もしくはgimpのソースの解説など教えていただきたいです。
よろしくお願いします。
ちなみにKNOPPIXでは./configureのxmlのところでエラーになってしまいました。
cygwinではconfigure: error: Test for GTK+ failed. See the file 'INSTALL' for help.と出ました。
INSTALLも読んでGTK+2.9.4(2.8.x以降)をmake installしようとしたのですが、./configureでto avoid the need to call pkg-config.とエラーになりました。
0045デフォルトの名無しさん
垢版 |
2007/02/14(水) 18:53:37
GTKでポトペタ開発できますか?
0046デフォルトの名無しさん
垢版 |
2007/02/14(水) 20:02:18
>>44
> gimp_get_type()という関数の宣言はあるのですが定義が見つからず困っております。
grepしても見つからない?

> makeの方法もしくはgimpのソースの解説など教えていただきたいです。
wikiは読んだ?
http://wiki.gimp.org/gimp/FrontPage#head-fcb3541b628624615ca28800e73e803f210bdab7

> configure: error: Test for GTK+ failed. See the file 'INSTALL' for help.と
configureがgtkを見つけられなかったかバージョンが古いんじゃないかな。

>>45
>>1
0048デフォルトの名無しさん
垢版 |
2007/02/15(木) 11:05:29
GTKってIDE(ダイアログ作るやつ)があるんですか?
0050デフォルトの名無しさん
垢版 |
2007/02/15(木) 16:15:37
ググッたけど、gladeってLinux用でWin32版は無いの?????
0052GIMP調査隊
垢版 |
2007/02/15(木) 17:20:41
>> gimp_get_type()という関数の宣言はあるのですが定義が見つからず困っております。
>grepしても見つからない?
K2のテキストエディタでgrepしたんですが見つかりませんでした。宣言だけ。

>wikiは読んだ?
拝見しました。HowToCompileGimpにWindows版があったので読んでみます。

>configureがgtkを見つけられなかったかバージョンが古いんじゃないかな。
gtkのパスを環境変数などに設定しなければいけないのでしょうか。またCygwinのgtkのバージョン確認の方法がわかりません。
0053GIMP調査隊
垢版 |
2007/02/15(木) 17:21:44
52のは>>46さんへです。
0055デフォルトの名無しさん
垢版 |
2007/02/15(木) 19:16:34
>>54
変の部分がわからないけど、
他のポトペタと同レベルと思ったら大間違い。
もっさりしてるのは、win上のgtkはそんなもん。
0056デフォルトの名無しさん
垢版 |
2007/02/15(木) 19:57:11
>>55
え、gtkだっけ?
0057GIMP調査隊
垢版 |
2007/02/15(木) 19:57:31
HowToCompileGimp/MicrosoftWindowsでGetMingwBatch.batを起動するところまではいけたのですが
実行すると
unzip: cannot find either wget-complete-stable.zip or wget-complete-stable.zip.
zip.
とエラーが出て終了してしまいます。
ちなみにGetMingwBatchをそのまま利用すると内部で利用するftpがないらしく動かないので
ftp.info-zip.orgをsunsite.icm.edu.plにunz552xN.exeをunz552x3.exeに修正して動かしました。
また環境変数にTZをいれ1000000000000と設定しました。
unzipコマンドがwget-complete-stable.zipを認識していないようなのですがよくわかりません。
よろしくお願いします。
0058GIMP調査隊
垢版 |
2007/02/15(木) 19:59:01
57で参照しているサイトは
ttp://wiki.gimp.org/gimp/HowToCompileGimp/MicrosoftWindows
です。
0059デフォルトの名無しさん
垢版 |
2007/02/15(木) 19:59:37
56です。
すまん、wxスレと勘違い(wxGlade)してた。
0061GIMP調査隊
垢版 |
2007/02/15(木) 22:24:19
>>60さん
wgetのところは無理やりバッチをコメントにしてLhaca+でwget-complete-stable.zipを解凍し、wget.exeなどをPathの通ったところにおいてやったらうまく行きました。
でも結局MinGWとかActivePerlをインストールするだけのようです。すでに手動でやってました。

それで今困っているのはHowToCompileGimp/MicrosoftWindowsに書いてあるCompileGimp.shというファイルが存在しないことです。ネットのどこかに落ちてるのかと思ったのですが見つかりません。
もし何か情報があったらよろしくお願いします。
0063GIMP調査隊
垢版 |
2007/02/15(木) 23:45:50
何とかGetMingwBatchのバッチファイルは成功するようになり準備はできました。
>>62さんに教えられたシェルでコンパイルできるらしいのですがシェルスクリプトをMinGWで実行したところエラーが出ました。
Testing if unzip is available...
You did not install unzip! Please download unzip from
http://gnuwin32.sourceforge.net/packages/unzip.htm and extract the content of that package to
/mingw/. Try to execute this script than again.
unzipがインストールされていないようです。示されたURLからSetupをダウンロードして実行したあとも試したのですが同じでした。
さっきのバッチファイルで全てインストールしたと思っていたのですがうまくいってなかったようです。
C:\MinGW\bin;にもunzip.exeがあったのでパスを通してやったのですがだめでした。
unzipはどうすればインストールできるのでしょうか。
よろしくお願いします。
0065GIMP調査隊
垢版 |
2007/02/16(金) 13:48:56
unzip.exeはMinGW/binに入れたので、念のためもう一度今日CompileGimpAtWindowsShell.shをMinGWで実行したところunzipのところはクリアしました。
再起動して設定が変わったからなのかもしれませんがよくわかりません。
その後いろいろなライブラリをシェルスクリプトが入れていきGimpのビルドが始まりました。
しかし、checking for GLIBのところでconfigureがエラーを出して終了してしまいました。

checking for GLIB - version >= 2.8.0... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error: Test for GLIB failed. See the file 'INSTALL' for help.

glibはglib-dev-2.6.6をシェルスクリプトが入れていたみたいですが失敗したのでしょうか。
またglibが正しくインストールされているか調べる方法もわかりません。
よろしくお願いします。
0067GIMP調査隊
垢版 |
2007/02/16(金) 14:53:10
>>66さん
ありがとうございます。気づきませんでした。ばかですね。
早速読んでみます。英文なので時間がかかりますが。
0068GIMP調査隊
垢版 |
2007/02/16(金) 17:31:40
configureでGLibで失敗することはおかげさまでなくなりました。
その後Pangoのバージョンが古いとかでftp://ftp.gtk.org/pub/gtk/v2.9/win32/から最新のPango(バイナリとdev版)を持ってきて、シェルスクリプトのpangoのところのバージョンも変更してgimp-env-tmpフォルダにさっきのzipを入れたら解決見事1.11.99が入りました。
これでPangoバージョン問題も解決かと思ったらさっきまでうまくいっていたGTK+のconfigureのcheckでエラーになりました。
checking for GTK+ - version >= 2.6.0... no
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
configure: error: Test for GTK+ failed. See the file 'INSTALL' for help.
さっきのGLibと似たようなエラーだったので.profileにgtkのヘッダーやdllへのパスを追加してやってみたんですがダメでした。
どうすればよいかわかりません。
よろしくお願いします。
0069GIMP調査隊
垢版 |
2007/02/16(金) 17:34:50
ちなみに.profileはmsysのホームディレクトリに置きました。
export PKG_CONFIG_PATH="/mingw/lib/pkgconfig"
export LD_LIBRARY_PATH="/mingw/lib:/mingw/include:/mingw/
include/glib-2.0/glib:/mingw/include/glib-2.0:/mingw/lib/
glib-2.0:mingw/lib/gtk-2.0/2.4.0/immodules:mingw/lib/gtk-2.0/
2.4.0/loaders:mingw/lib/gtk-2.0/include:mingw/include/gtk-2.0/
gdk:mingw/include/gtk-2.0/gdk-pixbuf:mingw/include/gtk-2.0/gtk"
export C_INCLUDE_PATH="/mingw/include"
export CFLAGS="-march=i386 -pipe -O3"
export CXXFLAGS="$CFLAGS"
export CPPFLAGS="-I/mingw/include/glib-2.0 -I/mingw/include/
glib-2.0/glib -I/mingw/include -I/mingw/lib -I/mingw/lib/
glib-2.0/ -I/mingw/lib/glib-2.0/include -I/mingw/lib/gtk-2.0/
include -I/mingw/include/gtk-2.0/gdk -I/mingw/include/gtk-2.0/
gdk-pixbuf -I/mingw/include/gtk-2.0/gtk"
export LDFLAGS="-L/mingw/lib -L/mingw/lib/glib-2.0/ -L/mingw/
lib/glib-2.0/include -L/mingw/include/glib-2.0 -L/mingw/include/
glib-2.0/glib -I/mingw/lib/gtk-2.0/include -I/mingw/include/
gtk-2.0/gdk -I/mingw/include/gtk-2.0/gdk-pixbuf -I/mingw/
include/gtk-2.0/gtk"

ダブルクオーテーションのところは改行を削除して一行でやりました。
0070デフォルトの名無しさん
垢版 |
2007/02/16(金) 17:37:58
>>68
config.log に configure のエラーメッセージが出ているハズだから

> checking for GTK+ - version >= 2.6.0... no

この結果が生じる理由を調べよう。

このノウハウは configure スクリプトを使うどんなフリーソフトウェアでも使える。
0071GIMP調査隊
垢版 |
2007/02/16(金) 23:46:28
ありがとうございました。config.logをみたら.profileにmingw/include/gtk-2.0とmingw/include/pango-1.0とmingw/include/atk-1.0を追加し、glibも2.8.0から2.12.9にバージョンアップしたらうまく通りました。ありがとうございます。
今はPythonをインストールしてくれというエラーが出たのでその対応をしているところです。
今日はもう遅いし、明日は予定があるので明後日からまた再開したいと思います。
これからもよろしくお願いします。
0072GIMP調査隊
垢版 |
2007/02/17(土) 00:10:31
Pythonはttp://www.python.jp/Zope/download/pythonjpdistよりWin32日本語版インストーラでインストールして
シェルスクリプトを実行したら出来ました。
次はPyGTKというPythonの拡張ライブラリをインストールするように言われたのですがこれはWin32用インストーラがなさそうなので大変ぽいです。
また明後日頑張ります。
0074デフォルトの名無しさん
垢版 |
2007/02/20(火) 01:29:44
でも、俺のWin2000/LinuxのデュアルブートのPCでは、両方nVIDIAドライバー入れてるけど、
GIMPはWin2000の方が早いな。
つーか、Win版のGTK+2.10はネイティブアプリと遜色ないスピードになってる気がする。
0075デフォルトの名無しさん
垢版 |
2007/02/20(火) 02:31:44
X11はクラサバモデルな分どうしても遅いからな。
でもオプソ開発やるならなんでもapt-getで入る環境が断然便利だよ。
Winはパス管理もメンドイし
0076デフォルトの名無しさん
垢版 |
2007/02/20(火) 06:48:42
X11プロトコルを整理するミドルウェアみたいなのって今は流行らないのかな?
#別々の描画命令を纏めるとか、いろいろやってくれたと思うけど。
0077デフォルトの名無しさん
垢版 |
2007/02/20(火) 06:59:23
see xcb.

2001年からやってて、ようやくX.Orgに入った。atomを単純に500個作るだけなら25倍早いんだと。
0079GIMP調査隊
垢版 |
2007/02/20(火) 14:49:28
http://wiki.gimp.org/gimp/CompileGimpAtWindowsShellScriptのシェルスクリプトはMinGWで全部正常に通るようになりました(warningが少し出てましたが)。
で、Makefileもいっぱい作られてさっそくgimpをmakeしてみたのですが、エラーが出てしまいました。
Making all in po
make[2]: Entering directory `/home/h-hiroshi/gimp/gimp-2.3.5/po'
make[2]: *** No rule to make target `all'. Stop.
make[2]: Leaving directory `/home/h-hiroshi/gimp/gimp-2.3.5/po'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/h-hiroshi/gimp/gimp-2.3.5'
make: *** [all] Error 2
makefileがどうもpoディレクトリに出来ていないようです(Makefile.inはあります)。
シェルスクリプトの最後でやったconfigureが失敗しているのでしょうか。
よろしくお願いします。
0080GIMP調査隊
垢版 |
2007/02/20(火) 17:12:25
gimpで./configureをもう一度直接したらpoにMakefileが作られました。
0082GIMP調査隊
垢版 |
2007/02/23(金) 16:10:25
皆様のおかげでGimp-2.3をMinGWでビルドすることに成功しました。
てめえのブログにも書きますが、是非お礼をしたくお邪魔しました。ありがとうございました。
0084デフォルトの名無しさん
垢版 |
2007/04/11(水) 00:08:22
複数のウィンドウを持つようなアプリでフォーカスされているウィンドウのウェジットを取得する方法はありますか?
0086デフォルトの名無しさん
垢版 |
2007/04/19(木) 01:30:31
>>84
こんなのはどうよ。

GtkWidget *get_focus_window(void)
{
GList *list, *tmp;
GtkWidget *focus_window = NULL;

list = gtk_window_list_toplevels();

for (tmp = list; tmp; tmp = g_list_next(tmp)) {
GtkWidget *window = GTK_WIDGET(list->data);
if (gtk_window_is_active(GTK_WINDOW(window))) {
focus_window = window;
break;
}
}

g_list_free(list);
return focus_window;
}
0087デフォルトの名無しさん
垢版 |
2007/05/17(木) 16:24:32
>>7
swingからc++のプログラムって呼べる?
c++のプログラムとwin32 linuxどっちでも動くように組み合わせたい
0091デフォルトの名無しさん
垢版 |
2007/07/09(月) 21:15:16
gtkmmをVisual Studio.net 2003で使いたいのですが、
gtkmm_win32.txtに2005とMinGWにしか対応していないと書かれています。
いちおう2003でHello Worldをコンパイルして、コンパイルは通ったのですが、
実行すると「アプリケーションを正しく初期化できませんでした」というエラーが出て
実行できません。
2003でgtkmmは使えないんでしょうか?
009291
垢版 |
2007/07/09(月) 23:58:36
今2005でもコンパイルしましたが、同じエラーが出ました。
エラーの内容は、

'gtkmmtest.exe': 'C:\GTK\bin\gtkmm-2.4d.dll' を読み込みました。シンボルが読み込まれました。
LDR: LdrpWalkImportDescriptor() failed to probe C:\GTK\bin\gtkmm-2.4d.dll for its manifest, ntstatus 0xc0150002

というものです。
gtkmmのDLLがマニフェストと合ってない?という意味でしょうか。
マニフェストの生成をいいえにしましたが、同じでした。
そもそもマニフェストの意味がよく分かりません。選挙ではよく聞きますが、ここでは関係ないですね・・。
009391
垢版 |
2007/07/10(火) 00:22:13
gtkmm2.8にしたらエラー出なくなりました
2.10だとエラーが出るようです。
0094デフォルトの名無しさん
垢版 |
2007/07/10(火) 06:08:12
>>91
>gtkmmをVisual Studio.net 2003で使いたいのですが、
>gtkmm_win32.txtに2005とMinGWにしか対応していないと書かれています。
2003にバグがあって、昔はgtkmmを使えなかった。今のgtkmmはしらん。
2005は↑のバグを修正してある。
つーか、2003では修正しないから、2005を買ってね。というM$商法。
0096デフォルトの名無しさん
垢版 |
2007/07/10(火) 22:58:57
質問です。
トップレベルウィンドウの子にGtkDrawingAreaを入れて、
このGtkDrawingAreaにkey_press_eventをgtk_signal_connectしたのですが、
キーボード入力を受け付けてくれません。
gtk_widget_set_eventsでマスクの設定はしてあります。
トップレベルのウィンドウだとキーボード入力を受け付けてくれます。
何がいけないんでしょうか?
0103デフォルトの名無しさん
垢版 |
2007/07/20(金) 22:15:52
文字の描画について質問です。
PangoLayoutに文字を入れて、gdk_draw_layoutで描画しているんですが、
半角文字(英字)のみ描画したときと、全角文字を混ぜて描画したときで
同じ位置をしていしているにもかかわらず、表示位置が異なってしまいます。
どうやったら同じ位置に表示できるんでしょうか。
レスを投稿する