トップページ⇒tech
209コメント52KB

GTK+ for Win32

■ このスレッドは過去ログ倉庫に格納されています
0001マキシムNGNG
なかなか面白そうなんですけどどうですか?
難しいですか?
0004デフォルトの名無しさんNGNG
この時間にこのネタで15分でレスが付くとも思えないよ
0005デフォルトの名無しさんNGNG
Win32限定かよ!!
0006デフォルトの名無しさんNGNG
>>3
リファレンス読めば済む。
0007マキシムNGNG
こんばんは。

本格的に勉強始めました。
手始めに何か簡単なプログラムを組んでみたいと思います。

まだ質問できるような状態ではないのですが
明日から皆様の知恵をお借りしたく質問させていただきたいです。

>>5
よく考えると、Win32に限定しなくても良いようなレベルの質問しかできないと思うので
限定解除にしてください。
0008デフォルトの名無しさんNGNG
じゃぁ、ついでに glade な話で...。

glade をさわりはじめたんですが、
これを使って、ボタンの上に絵を貼り付けるのって無理なんでしょうか?
強引にイベントボタンと pixmap で作れないことはないんだけど、あまりに面倒なので...。

GTK で手打ちでやるのはできるんですが、glade 使ってできんもんかと...。

# 勝手に書き換えられちゃいますしね(^^;>interface.c
# やっぱり main に手打ちしかないんだろうか。
0009マキシムNGNG
基本はなんとか覚えました。(ウィンドウ、テキスト、ボタンなど)

質問です。
テキスト領域を作成して、そこにgtk_text_insert()関数を使用して文字を表示します。
文字の表示自体はうまくいったのですが、複数の行を表示するときに
1行目と2行目に表示する文字の数は同じなのですが、行の終端がずれます。

これを揃えたい(Windowsのメモ帳みたいに。)のですが、
なにかオプションというかパラメータが存在するのでしょうか?
0010デフォルトの名無しさんNGNG
VDKもありにしてくれ。
0011デフォルトの名無しさんNGNG
>>9
文字数は同じでも内容は違う?
もしそうなら、フォントが等幅フォントじゃないからだと思ふ。
0012マキシムNGNG
>>11
さっきPCUser立ち読みしてきて、解体新書がフォントでした。
読んでみるとまさに11氏の指摘するとおり、フォント指定がまずいのかなと。

どれが等幅フォントなのでしょうか・・。
0013名無し募集中。。。NGNG
落としたけどコンパイルできませんが・・・
0014デフォルトの名無しさんNGNG
コンパイラ名とエラーメッセージを書くべし。
0015デフォルトの名無しさんNGNG
>>12
WindowsだったらMSゴシック(Pがついてない方)とか。
フォントのプロパティ見てみれ。

Linuxだったらfixedとかだが、文字セットで変わる?っぽい。
0016マキシムNGNG
>>15
ありがとうございます。
が、どのフォントを選択してもずれてしまいます。
何故でしょう・・。

今日はClistをやっています。
が、うまくいきません。
gtk_clist_append()でリストを追加しようとしてもエラーが出てしまいます。
DOSコンソールに、
Assertion 'clist != NULL' failed
と出てしまいます。

ちなみに
GtlWidget *clist
です。
0017デフォルトの名無しさんNGNG
>12
XLFDなら、*-c-*(だったと思う)

>16
それだと、clistがNULLじゃまずい場面でNULLだったんだろうな、ということしか
わからないんですが。
clist=gtk_list_new(...)
してる?
0018デフォルトの名無しさんNGNG
>>17
> XLFDなら、*-c-*(だったと思う)
あるいは*-m-*。(monospace)
cはcondensed
0019マキシムNGNG
>>17, 18
フォントの件、
試してみます。助かります。

>>17
Clistの件、
単純ミスでした。変数clistが2回宣言されていて
最初に初期化された値が2回目の宣言でダメになっていました。
0020デフォルトの名無しさんNGNG
age
0021デフォルトの名無しさんNGNG
話題ないかね?
0022デフォルトの名無しさんNGNG
GtkComboに同内容のテキストを複数入れます。
例)
1:giko
2:mona
3:c
4:giko
5:zonu

この状態で、4を選ぶと4が選べず、1が選択されてしまいます。
これ回避する方法はありませんでしょうか?
0023デフォルトの名無しさんNGNG
Comboってのはそういうもんじゃないの?
002422NGNG
>>23
え? そうなの? OptionMenu使えってことですか?

# 確かにgimpとかネスケもComboBoxは使ってないけど・・・。
0025デフォルトの名無しさんNGNG
Comboってのは、TextEntryがあってそこに入力する候補をリストで提示するも
んだから、最終的に目的とするのは入力された文字列であって、リストの番号
とかじゃない。
選択肢を限定したいんなら、当然OptionMenuとかになる。
0026デフォルトの名無しさんNGNG
Windows版のパフォーマンスはどう?
まともに使えるレベル?
0027デフォルトの名無しさんNGNG
afe
0028デフォルトの名無しさんNGNG
age
0029デフォルトの名無しさんNGNG
俺はGTK+ for Win32のインストールさえ
二週間掛けても出来なかった馬鹿。
0030デフォルトの名無しさんNGNG
>>30
誰もでも初めはそんなもんだ。
一週間後に再渡来しよう。
0031デフォルトの名無しさんNGNG
>>29 この辺りを読んで再トライ
(長い間更新されていないので古いが)

GTK+ for Win32で始めるWindowsプログラミング
http://www.geocities.co.jp/SiliconValley/3097/learning_gtk_win/learning_gtk_index.html
003230NGNG
劇鬱。氏。
0033デフォルトの名無しさんNGNG
ape
0034デフォルトの名無しさんNGNG
kakkiganainaa
0035デフォルトの名無しさんNGNG
ヽ(´ー`)ノウホホーイ
0036デフォルトの名無しさんNGNG
緊急浮上
0037さるNGNG
GTKでウィンドウのサイズ変更を抑制する方法をおしえてください。
gtk_widget_set_usize()だと、なぜかウィンドウの縮小のみしか抑制できないし。

できればソースつきでお願いします。
0038デフォルトの名無しさんNGNG
>>37
gtk_widget_set_usize で出来るはずだが?
gtk_window_set_policy とか使ってるか?

0039さるNGNG
>>38
解決。
ありがとう!
0040デフォルトの名無しさんNGNG
GTK+ win32 (・∀・)イイ!
だれかテーマ変えるのに成功した方いますか?
0041デフォルトの名無しさんNGNG
えととりあえず、Ruby/GtkのDnD対応きぼんぬ

とかいってみた
0042デフォルトの名無しさんNGNG
>>41
Ruby Gem BoxのFXRubyの所にある
GUI tool kit比較表にはできるって書いてあったけど?
http://www.ohmsha.co.jp/data/books/contents/4-274-06460-3.htm
ざっと立ち読みしただけなんで、詳しくは分からないけど。
004342NGNG
あ、もしかしたらRuby/Gtkではなくて、
Gtkが対応、ということかもしれない。
そうだったらスマソ。逝く。
0044デフォルトの名無しさんNGNG
DirectXいじれますか?
0045デフォルトの名無しさんNGNG
>>44
GUIライブラリ(?)だから、DirectXと組み合わせる、組み合わせないは別問題な気がするが?
とりあえず、ウィンドウハンドルの相当するものが取得できないと使えないと思うけどな。
自分の知る限り、それに相当するものは見たことないが。

0046デフォルトの名無しさんNGNG
>>40
windows\gtk+\themesかwinnt\gtk+\themesにあるファイルを
編集すればテーマ変えられるはず
004741NGNG
>>43
ここはビミョーなとこでさ…Pythonだとできるんだよ。
もしPythonでもできなければ自分がコケーンしてもよろしいができちゃうんジャーね
メーリングリストの記録によると、作者は設計で何か悩んでたみたいだった。
RubyにこだわらないRubyユーザもいるってことで。。
0048デフォルトの名無しさんNGNG
2.0リリースage!
0049デフォルトの名無しさんNGNG
Win32 では GDK はどうなってるの?
0050デフォルトの名無しさんNGNG
age
0051デフォルトの名無しさんNGNG
環境整えるのにいろんなサイト見たけど
バージョンが変わってるので古い情報ばかりで
インスト方法変わってるみたい
もういい!つかれた!
GUIなら、WideStudioでいいや
0052デフォルトの名無しさんNGNG
Gtk+ って DnD をサポートしているんですか?
0053デフォルトの名無しさんNGNG
たりーめ
0054デフォルトの名無しさんNGNG
>>53
ドラッグ&ドロップのドキュメント&サンプルコードがあったら教えて下さい。
005553NGNG
>>53
http://www.gtk.org/tutorial/ch-dragangdrop.html
http://larse-gtk.hoops.ne.jp/gtk/dnd.html

がんばれ。
005654NGNG
>>55
うゎ、どうもありがとう!

下のリンクは始めて見ました。PyGtk に付いて来る DnD サンプルの
オリジナルでしょうか。

勉強させて頂きます。
0057デフォルトの名無しさんNGNG
GDKって、wxWindowsよりも良いの?
005841の続きNGNG
Ruby/GTK (Ruby-GNOME)の DnD 未対応問題だけど、その後、
3月に出たやつで完全にサポートできたみたい。

Newsって同梱ファイルに書いてあった。まだ入れてみてないけど
0059デフォルトの名無しさんNGNG
Gtk+ で Imput Method から変換中の文字列を取ってくる事は可能ですか?
0060デフォルトの名無しさんNGNG
>>57
GDKとwxWindowsは全然別物。

GDKはGTK+とXlibの間にはさまるもの。
GTK+を他のプラットフォ−ムに移植するときには、
GDKを移植するだけで同じLook & Feelが得られる。

wxWindowsはGTK+より上のクロスプラットフォ−ムライブラリ。
0061デフォルトの名無しさんNGNG
@@@@@@@@@@
0062&\ ◆XoogxnkU NGNG
@@@@@@@@@@@@
0063shige ◆SK9YtOxs NGNG
age
0064デフォルトの名無しさんNGNG
GTK+をBCCで使おうと思ってるんだけどextralibsって必要なの?
見つからないんだけど。
すでにインストールして使ってる人、教えてください。
0065デフォルトの名無しさんNGNG
gtk使うと
フォントが全部行書体になるんですが、
これって設定の問題?
0066デフォルトの名無しさんNGNG
設定だろうな。

Windows用は知らんのだが、だいたいXLFDで最初にマッチしたフォントを使う
から、たとえばfndryがarisawaになってるとか。
0067デフォルトの名無しさんNGNG
ぐぐってみたage。


GTK+ チュートリアル http://www.swlab.csce.kyushu-u.ac.jp/man/gtk_tut_ja/gtk_tut_ja.html#toc1
本家のチュートリアルの邦訳。

その他邦訳したマニュアルや入門サイトのリンク集(?)
http://www.geocities.co.jp/SiliconValley-Cupertino/9940/gtk/index.html
0068shigeNGNG
最近はwinGTK/winGladeがあるから、Windows上での導入/開発も楽だとおもうぞ。

http://wingtk.sourceforge.net/
0069デフォルトの名無しさんNGNG
だからwinのgtkは死ぬほど不安定なんだっつーの
0070shigeNGNG
ぷっ
0071デフォルトの名無しさんNGNG
屁こくな。
0072デフォルトの名無しさんNGNG
ここはgtkの総合スレでいいのですか?winのみですか?
他にgtkスレが見つからないので、ここで質問してもいいでしょうか?
0073デフォルトの名無しさんNGNG
>>72
GTKのProgrammingに関する質問なら。
0074shigeNGNG
>>72
どーぞ
0075スレ違いスマソNGNG
>>69
GIMP見る限りわからんでもない。

# 領域選択のバグ直してくんねぇかな(他力)>GIMP
0076デフォルトの名無しさんNGNG
どういうバグ?
007772NGNG
質問しようと思ったのですが解決しました。
---------------------------------------------------------
GtkWidget *vbox, *button;
vbox = gtk_vbox_new (FALSE, 0);
button=gtk_check_button_new_with_label("button1");
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
button=gtk_check_button_new_with_label("button2");
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
--------------------------------------------------------
とするのがいまいち分からなかったので質問しました。
(はじめはbutton1,button2,・・・,buttonNと作ってました。)
007872NGNG
質問しました。 (×)
質問しようと思ってました。(〇)
0079デフォルトの名無しさんNGNG
>>75
パッチはあるんだけどね。
008075NGNG
>>76
マウスで領域選択しただけで落ちるバグ(c^Aは平気)。
他にも、Script_Fu絡みでバグがあるらしい。

>>79
知りませんですた。

0081デフォルトの名無しさんNGNG
>>80
ttp://www.st.rim.or.jp/~kimiya/
008275NGNG
>>81
thx!!
0083デフォルトの名無しさんNGNG
垂直ボックスをつく り、そのなかにパッキングしていくと左詰めになります。
大きさが違うウィジェットをパッキングしたとき、左詰めではなく
真ん中に持って来たいのですがどうすればいいのでしょうか?
008483NGNG
仕方がないので、垂直ボックス内に水平ボックスを入れ、
スペースだけのラベルを入れて位置を調節しています。
他に方法はないでしょうか?
0085shigeNGNG
>>84
ソースをださんか?
008683NGNG
vbox = gtk_vbox_new(FALSE,3);
button = gtk_check_button_new_with_label("ボタン1");
gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0);
button = gtk_button_new_with_label("ボタン2 ここに入る文字列がとても長い");
gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0);

このようにするとボタン1が左詰めになってしまいます。
これを真ん中に持って来たいのです。
008783NGNG
あとテキストウィジェットはデフォルトでは編集不可能なんですか?
本にはデフォルトで編集可能と書いてあるのに、そうではありませんでした。
0088shigeNGNG
>>86
簡単にするなら>84しかないな。
ただ、両脇のスペース用ラベルはいらないぞ。
水平ボックスにパックする際に
gtk_box_pack_start(GTK_BOX(hbox), child, TRUE, FALSE, 0);
でよかろう。
008983NGNG
>>88
その方法で、チェックボタンでは上手く逝きました。ありがとうございました。
しかしvbox内にhboxを入れたときには、やっぱり左詰めになってしまいました。
0090デフォルトの名無しさんNGNG
テキストウィジェットに文字を張りつけるとき、
http://pc.2ch.net/test/read.cgi/unix/981805118/43
の文字があると、張りつけることができません。どうしたらいいでしょうか?
0091デフォルトの名無しさんNGNG
Ruby/Gtk+ なんですが、CListとかの選択を移動させる
にはどうしたらいいんでしょ。
カーソルキーだと移動できるんですが、他のキーにバ
インドしたいんですよねぇ.......
#select_row じゃなくて、その前の話ね。
0092デフォルトの名無しさんNGNG
>>90
機種依存文字を使わない
しかし一部はUnicodeやJIS X 0213で定義されてる罠
0093デフォルトの名無しさんNGNG
age
0094名無しさん@EmacsNGNG
>86
GtkPacker で GTK_ANCHOR_CENTOR を使う。
(GtkVBox でなくてスマソ)

#include <gtk/gtk.h>
int
main (int argc, char* argv[])
{
GtkWidget* button;
GtkWidget* win;
GtkWidget* pack;

gtk_set_locale();
gtk_init(&argc, &argv);

pack = gtk_packer_new();
button = gtk_check_button_new_with_label("button1");
gtk_packer_add_defaults (GTK_PACKER (pack), button,
GTK_SIDE_TOP, GTK_ANCHOR_CENTER,
GTK_PACK_EXPAND);

button = gtk_button_new_with_label("button2 with much more large length");
gtk_packer_add_defaults (GTK_PACKER (pack), button,
GTK_SIDE_TOP, GTK_ANCHOR_CENTER,
GTK_PACK_EXPAND);

win = gtk_window_new (GTK_WINDOW_TOPLEVEL);

gtk_container_add (GTK_CONTAINER (win), pack);
gtk_widget_show_all (win);

gtk_signal_connect (GTK_OBJECT (win), "delete_event", gtk_main_quit, 0);
gtk_main();
return 0;
}
009594NGNG
>94 GtkPacker で GTK_ANCHOR_CENTOR を使う。
GTK_ANCHOR_CENTER の typo です。。。
ちなみに中身が hbox でもちゃんと動くと思います。 (>89)


>87
テキストウィジェットは1年くらい前に使った感じでは
デフォルトは編集不可だったような気がします。
あんまり自信ないけど。

・・・ということで、gtktext.c を調べたら、

> static void
> gtk_text_init (GtkText *text)
> {
> GTK_WIDGET_SET_FLAGS (text, GTK_CAN_FOCUS);
> text->text_area = NULL;
(snip)
> GTK_EDITABLE (text)->editable = FALSE;
>
> gtk_editable_set_position (GTK_EDITABLE (text), 0);
> }

となっているので、初期化時は編集不可っぽいですね。
GtkEditable 自体はデフォルトで編集可能で、
GtkEntry もそうだから間違えたのではないでしょうか。

ちなみにどんな本?



ところで、gtk+extra を win32 で使うことに成功した方はいらっしゃいますか?

http://gtkextra.sourceforge.net/

GtkPlot なら使えるのですが、GtkIconFileSel 等のファイルがらみの
widget がコンパイル通らず。。。
0096デフォルトの名無しさんNGNG
gtkでなにかアプリを作って、そのアプリでテーマ使えますよね?
テーマは、ダウソしたやつ。

http://themes.freshmeat.net/browse/923/?topic_id=923
0097デフォルトの名無しさんNGNG
styleを動的に変更することはできますか?

http://ruby.freak.ne.jp/gtk/style.html
を参考にやってます。
0098デフォルトの名無しさんNGNG
> 96
"使える"ということが、"見た目が変わる"という
意味であれば、、当然使える。
0099デフォルトの名無しさんNGNG
pixmap.dllが見当たらないですよ・・・。
0100デフォルトの名無しさんNGNG
> 99

ここらへんはどうよ。
http://isweb8.infoseek.co.jp/computer/cargo/gimp/troubles.htm
0101デフォルトの名無しさんNGNG
提起あげ
0102デフォルトの名無しさんNGNG
>101
ネタを出せ、ネタを。
0103デフォルトの名無しさんNGNG
age
■ このスレッドは過去ログ倉庫に格納されています