[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/27 01:06 / Filesize : 255 KB / Number-of Response : 921
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

GTK プログラミング!!



1 名前:login:Penguin [2001/07/22(日) 22:31]
俺の様な厨房プログラマーをある程度使えるようにまで育成して、和製糞ソフトを
大量量産するのが目的のスレッドです。
とりあえずGNOMEプログラミング(小学館)を買ってきました。
これから読んでみます。

867 名前:login:Penguin mailto:sage [2007/02/15(木) 02:32:20 ID:l0yfSnwW]
GtkIconViewを使えって話じゃないのかな? ファイラってのがよくわからんが。
(Windowsの explorerはいつも「詳細」にして使ってるんで)。
mime-typeに応じたアイコンを取得したいってのなら、知らん。

まず、やりたいことを分割して曖昧じゃない日本語で箇条書きにして、
必要度、依存関係を書いて提示しろ。
できればこんなところに質問しないか。


868 名前:login:Penguin mailto:sage [2007/02/16(金) 17:15:53 ID:zsLloLAV]
Explorerを詳細表示にして使ったところで、ファイル名の左側に
拡張子に応じたアイコンが表示されてるじゃん。

869 名前:login:Penguin [2007/02/17(土) 15:44:53 ID:fKE+Jy3+]
たとえば、firefox で実装されているように、

* あるアプリケーションがすでに実行されていた場合は新しくタブでドキュメントを開く
* そうでなければ、新しいウインドウでドキュメントを開く

という動作を実行するのには、どういう仕掛けを使うのが一般的なのでしょうか?

870 名前:login:Penguin [2007/02/17(土) 16:43:58 ID:KR0sG7u1 BE:253234144-2BP(0)]
>>869
1. プログラムを起動したときに別のインスタンスがいないかどうか確認
2. インスタンスがいたときにはそいつにメッセージ(Firefoxの場合ドキュメントのURLかな)を渡して自分自身は終了
ってことでいいかな?結局多重起動のチェックとプロセス間通信がやれればいいのね。
SylpheedではUNIXドメインソケットで1,2をやってるみたい。
Gtk+周辺のテクノロジで固めたいならD-BUSを使ってもいいかも

871 名前:login:Penguin mailto:sage [2007/02/17(土) 18:22:53 ID:CMTL+Fmk]
>>870は同じホストしか考えないプログラムの場合の一般論であって、
Xの場合はとるべき手段が違ってくる。
netscapeはXプロパティ経由で通信するので、同じスクリーンにウィンドウが
開いていればプロセス自体は別のマシンでも通信できる。
firefoxも同じ。

GDK/GTK+にXプロパティなんかのラッパーがあるかどうかは知らない。

それで見付からないなら諦めるもよしプロセスを起動するもよし、で
起動するのならば、通常のプログラム同様データファイルの一貫性保護
などを目的としてロックファイルなどによる多重起動チェックをやればいい。

872 名前:login:Penguin mailto:sage [2007/02/19(月) 23:16:35 ID:5FZGim03]
>>869

とりあえずこれ読んでみたら?
GTK+だけで実装しているっぽい。

gtklab.sourceforge.jp/gtkwin/gtkwin10.txt

873 名前:login:Penguin mailto:sage [2007/02/20(火) 08:11:40 ID:ONtjkv3E]
ウィンドウを作らないとチェックできないのがちょっと嫌かも。
あと既に動いてるプロセスがサスペンドされたりしてたら
それが復活するまで判定が終了しないんじゃね。

874 名前:login:Penguin [2007/02/22(木) 15:48:43 ID:jpFFYqu/]
GTK 1.2から2.0に切り替えたら、XTestライブラリが使えなくなっちゃたんですが。
linkでエラーになります。(Undefined reference `XTestQueryExtension`)
知ってる方いましたらお願いします。
ディストリ Vine4.0
gtk2-2.4.13

分からないので、XTestをやめてXSendEvent()とかを使って書き直してます。

875 名前:login:Penguin mailto:sage [2007/02/22(木) 18:24:28 ID:ARkHAdB3]
単に-lXtstをGTKがリンクしなくなっただけでは。



876 名前:login:Penguin mailto:sage [2007/02/23(金) 09:24:50 ID:Toss6a7K]
>>875
うまくlink出来ました。ありがとうございました。

877 名前:login:Penguin mailto:sage [2007/02/24(土) 17:34:31 ID:M/6/J6Qq]
gtk1のソースをgtk2に変更するツールはありますか?

878 名前:login:Penguin mailto:sage [2007/02/24(土) 17:40:30 ID:R3/FZlN8]
なんでも「ツール」と呼べば済むと思ってるんじゃねーぞ。
そういう奴が女性を産む機械だとか抜かすんだ。

879 名前:login:Penguin [2007/02/24(土) 18:49:12 ID:M/6/J6Qq]
gtk1のソースをgtk2に変更するスクリプトはありますか?

880 名前:login:Penguin mailto:sage [2007/02/24(土) 20:15:03 ID:tree4KTM]
スクリプトキディおつ

えーと、あれだ。ない。

881 名前:login:Penguin [2007/02/24(土) 20:31:22 ID:Z7G0MF3p]
>>878を女性を産む、機械と読んでエロゲーとか思ったのはおれだけじゃないはずwwwwwww

882 名前:login:Penguin [2007/02/25(日) 16:21:18 ID:jPY2U1RH]
あるウィジットの大きさを一定以上に広がらないようにしたいのですが、どうするのが正解ですか?

883 名前:login:Penguin mailto:sage [2007/02/25(日) 20:12:20 ID:xIfK6WPJ]
いつもGladeで設定しちゃってる。

884 名前:login:Penguin mailto:sage [2007/02/26(月) 18:41:50 ID:pt8OB6ru]
前から思ってたんだが、なんでみんなlibglade使わないの?
便利なのに……

885 名前:login:Penguin mailto:sage [2007/02/26(月) 19:58:31 ID:uj4cgUSY]
ライブラリ依存がどんどん激しくなるよね。
C++なんか使ってたら、hohogemmなんてリンクするものがどんどん増えていく。
ああいうの一つにまとめて標準で入れておいてくれたらもっと楽なんだけどなあ。



886 名前:login:Penguin [2007/03/03(土) 08:59:18 ID:iO4b+0oy]
Windows での話しなのですが、GtkTextView を作った時に同時に日本語入力を
オンにすることってできますか?
input method 関係を探したんですが、どうも見つからなくて…

887 名前:login:Penguin mailto:sage [2007/03/04(日) 07:57:59 ID:gI/IeUsG]
それってGTK側でやる仕事なのかなぁ。
ちょろっと調べただけだけど、ImmGetConversionStatus()でIMEの状態を調べて
keybd_event()でVK_KANJIじゃない?win32apiの範疇だと思うけどな。

888 名前:login:Penguin mailto:sage [2007/03/05(月) 13:11:27 ID:n32uogVx]
>>887
どうもありがとうございます。
考えてみれば Windows の API でやるのが正しいですね。
書き込みして気づきました。
ありがとうございました。

889 名前:886 mailto:sage [2007/03/06(火) 02:47:16 ID:rlQdCBer]
GTK とは関係なくなってしまいましたが、
www.cam.hi-ho.ne.jp/oishi/tips.html#ime
に書いてありました。ここの SetInputMethodOpenStatus() がそのまま使えました。
お手数おかけしました。

890 名前:login:Penguin [2007/03/11(日) 10:56:27 ID:bVyF8jVB]
>889
そこにあるコードは著作物なのだが。

891 名前:login:Penguin mailto:sage [2007/03/11(日) 22:40:07 ID:RO7bywIf]
>>890
これを見るとrpmコマンド叩くにも>>889のリンク先に許可を求めないといけなくなるんだよね。
著作物だし。

892 名前:login:Penguin [2007/03/12(月) 09:27:43 ID:slT8Ay77]
gtk_window_new() でwindow生成後に、最小化してwindowを隠すにはどうすればいいんでしょうか?
教えてください m(_ _)m

893 名前:login:Penguin mailto:sage [2007/03/12(月) 12:04:53 ID:WX8P/QrK]
gtk_window_iconify()
てかマニュアルぐらい読め

894 名前:login:Penguin mailto:sage [2007/03/12(月) 15:37:48 ID:slT8Ay77]
>>893
ありがとうございます。m(_ _)m

895 名前:886 mailto:sage [2007/03/14(水) 00:53:00 ID:LNXDqswG]
>> 890
結局必要なのは ImmSetOpenStatus() ぐらいなものなので、

#include <gdk/gdkwin32.h>

void
ImmSetStatus(GtkWidget *widget, ImmStatus status)
{
HWND hWnd = (HWND) GDK_WINDOW_HWND(widget->window);
HIMC hIMC = ImmGetContext(hWnd);

/* Set IMMM status */
ImmSetOpenStatus(hIMC, (status == IMM_ON));

/* Release context */
ImmReleaseContext(hWnd, hIMC);
}

ってしたよーん。ってほとんど GTK と関係ないっすね。



896 名前:login:Penguin mailto:sage [2007/03/19(月) 02:53:53 ID:IBwC1/nU]
せっかくGTK使ってるのにプラットフォーム依存にしてしまうの?

897 名前:login:Penguin mailto:sage [2007/03/20(火) 00:43:22 ID:SW3xr29J]
MinGWでgtkを勉強してるんですが、プログラムを実行するときに、
syntax error near unexpected token `main('
と出てきて、
プログラムが強制終了してしまうんですが、誰か対処法を知っていたら教えて下さい。
コンパイルは一応通ってるとは思うんですけど・・・・・。

898 名前:login:Penguin mailto:sage [2007/03/20(火) 02:09:03 ID:pOTrHDbj]
とりあえずソースを晒すといいかも

899 名前:login:Penguin mailto:sage [2007/03/20(火) 04:42:36 ID:yYm494xv]
GTK以前に hello worldとかを compile & 実行できているかが気になる。

900 名前:login:Penguin mailto:sage [2007/03/20(火) 16:13:54 ID:SW3xr29J]
>>898
エラーがで出てたのは、このウィジェットだけを配置する
プログラムなんですが、
#include <gtk/gtk.h>

int main(int argc,
char *argv[])
{
GtkWidget *window;
GtkWidget *button1;
GtkWidget *button2;
GtkWidget *button3;
GtkWidget *button4;
GtkWidget *button5;
GtkWidget *table;

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
table = gtk_table_new(10,10,FALSE);

gtk_container_add(GTK_CONTAINER(window),table);

button1 = gtk_button_new_with_label("BTN1");
button2 = gtk_button_new_with_label("BTN2");
button3 = gtk_button_new_with_label("BTN3");
button4 = gtk_button_new_with_label("BTN4");
button5 = gtk_button_new_with_label("BTN5");
//前半



901 名前:login:Penguin mailto:sage [2007/03/20(火) 16:15:20 ID:SW3xr29J]
//後半
button1 = gtk_button_new_with_label("BTN1");
button2 = gtk_button_new_with_label("BTN2");
button3 = gtk_button_new_with_label("BTN3");
button4 = gtk_button_new_with_label("BTN4");
button5 = gtk_button_new_with_label("BTN5");

gtk_table_attach_defaults(GTK_TABLE(table),button1,0,2,0,10);
gtk_table_attach_defaults(GTK_TABLE(table),button2,2,4,0,10);
gtk_table_attach_defaults(GTK_TABLE(table),button3,4,6,0,1 );
gtk_table_attach_defaults(GTK_TABLE(table),button4,6,8,1,2 );
gtk_table_attach_defaults(GTK_TABLE(table),button3,8,10,2,3);

gtk_widget_show_all (window);

      gtk_main ();

return 0;
}




902 名前:login:Penguin [2007/03/20(火) 16:16:54 ID:SW3xr29J]
>>899
不安になってやってみたら「hello, world」も同じエラーがでてきてできませんでした..orz。

#include<stdio.h>

int main() {
printf("hello, world");
return 0;
}

gtk+ チュートリアルのへろーわーるどは実行できるんですけど、
プログラムが終わると同じエラーがでてきます。
ぐぐったら、文字コードが関係してるらしいんですが、どれでやってもダメでした。
LINUXでやれっていうことなんですかね............。

903 名前:login:Penguin mailto:sage [2007/03/20(火) 16:56:26 ID:u2b4TE2D]
mingwをインストールしなおせ

904 名前:login:Penguin mailto:sage [2007/03/21(水) 03:54:17 ID:Ay+CzKM3]
>>872
今更だけど、gtklab.sourceforge.jp/gtkwin/gtkwin10.txt の方法だけど
Win ではうまくいかなかった。
なので普通に Win API を使うしかなかった。

>>902
俺は gladewin32.sourceforge.net/modules/news/ の GTK ライブラリ使ってるけど、
問題なかったよ。

905 名前:login:Penguin mailto:sage [2007/03/21(水) 15:08:14 ID:mdl7DVyg]
>>897
syntax error near unexpected token `main('

これは実行時ではなくてコンパイル時のエラーメッセージではないのか。



906 名前:login:Penguin mailto:sage [2007/03/21(水) 15:33:43 ID:h4G4UgJx]
あのね、ここはLinux板でしてね
win32-portのことならム板にスレがあるからそっちに行ってほしいんだ

907 名前:login:Penguin mailto:sage [2007/03/21(水) 15:44:01 ID:OzGdWDRq]
>>904
WindowsではWindowsのAPIを使うのが正解かもね。
その文書を書いた人が公開しているプログラムでもそうしてるみたい。
cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/vmaid/vmaid/orz/orzcomm.c?view=markup

908 名前:login:Penguin mailto:sage [2007/03/22(木) 06:20:18 ID:nC3vS/QI]
>>906
ム板には無いような気がするなぁ。
マイナーGUITKを「紹介するだけ」のスレはあるようだけど。
見落としてる?

909 名前:login:Penguin mailto:sage [2007/03/22(木) 08:16:50 ID:P6YXu+FN]
>>908
GTKやめて、FOX Toolkitで作るといいよ

910 名前:login:Penguin mailto:sage [2007/03/22(木) 11:05:43 ID:nC3vS/QI]
>>909
突然、何?
なにかが気に障ったなら謝るよ。ゴメンナ。

911 名前:login:Penguin mailto:sage [2007/03/22(木) 17:19:08 ID:NVYlVu8k]
>>904
>>906が言ってるのはここの事では。

Gtkプログラミング on Windows!!!
ttp://pc11.2ch.net/test/read.cgi/tech/1147024203/

912 名前:login:Penguin mailto:sage [2007/03/22(木) 18:01:50 ID:oCFS6K5y]
>>900

int main(int argc,
char *argv[])

gint main(gint argc,gchar *argv[])に変えてみろ


913 名前:login:Penguin [2007/03/29(木) 16:50:34 ID:dC+/1rKX]
GTKのwidgetにMozillaをのっけてアプリケーションを作った人いますか?
不具合とかあったら教えてください!

914 名前:login:Penguin [2007/04/01(日) 02:44:59 ID:RjtNty3y]
すいません、質問させてください。文字を90度回転させるにはどうしたらいいですか?

915 名前:login:Penguin mailto:sage [2007/04/03(火) 01:42:21 ID:99UCu54W]
ついに、自前の C++ マーシャラーを作成して、シグナルにコネクトできるようになったぜ!
こんな感じ。

class Test
{
public:
Test() : dummy(123) { }

void hello (GtkWidget *widget, gpointer data);

private:
int dummy;
};

void
Test::hello (GtkWidget *widget, gpointer data)
{
g_print ("Hello World C++ %d\n", dummy);
}

g_signal_connect_cc (button1, "clicked", &test, &Test::hello, 0);

これで、button1をクリックすると、

Hello World C++ 123

と出力される。v(^O^)v
素の GTK+ を使いつつ C++ でプログラム出来るのはかなりおいしい。




916 名前:login:Penguin mailto:sage [2007/04/03(火) 05:09:44 ID:EaZCa4Le]
>>914
GTKをインストールした時についてくる gtk-demo で、
Rotated Text というのがあるので、それを見たらいいと思う。
gtk-demoでソースも見れるよ。

917 名前:login:Penguin mailto:sage [2007/04/03(火) 19:04:41 ID:YnFjw9iH]
>>915
あ、それよさげ。
全体としてはC++でコーディングしたいけど、GTK+周りは初心者なので
素のCでやりたいと思ってた。gtkmmとか使うのも考えたけど、本家(?)の
GTK+の方が情報揃ってそうだったし。

918 名前:915 mailto:sage [2007/04/04(水) 03:16:21 ID:4cUWSG/i]
こんな時間になったけど、めげずにカキコ。

GTK+ が他のツールキットと違うのは、コールバック関数を呼び出す際に、
引数をスタックに積まないで、ヒープに型情報と共に保存して、
シグナルに登録されたマーシャラーを呼び出す。

呼び出されたマーシャラーは、データを取り出して、コールバック関数に
合った方法で引数に変換して、コールバック関数を呼び出す。

というところまで分かったんで、だったら、C++ のメソッドを呼び出せる
ように出来るんじゃないかと思ったのがきっかけ。
gtkmm を使いたくないのが一番の理由だけどw

とりあえず、これからブログを開設するんでwwwそっちに載せるつもり。

919 名前:914 mailto:sage [2007/04/04(水) 20:46:07 ID:fydXVgVP]
>>916
情報ありがとうございますm(_;_)m
gdkのpangoインターフェースというのがあるんですね。
(でも2.6からみたいなので拙の2.4ではだめかも…)

920 名前:login:Penguin mailto:sage [2007/04/12(木) 18:45:31 ID:AmiOQVwy]
textviewについて質問です
表示行数を増やしたときに、その新しい行が見えるように、一番下までスクロールすることにしました。
text_buffer_insertして
end_iterにscroll_to_iterしています。
しかし、これを実行しても、最後の行までスクロールされません
最後のカーソルがひとつあるだけの行と、その上の行が見えません(つまり、こちらの意図より2行うえにずれてる)
もちろん、スクロールバーも、下がちょびっと残っていて、一番したまでぴったり動きません

テキストビューを一番下までスクロールする方法を教えてください






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<255KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef