[過去ログ] GTK+プログラミング (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
61: 2008/06/01(日)12:51 ID:Qfk/evfC(1/8) AAS
質問ばかりですみません。
スタートをクリックしたらマウスカーソルを10秒間消したいと思っています。
カーソルを透明にしてやればいいと思うのですが、
よくわかりません。
よい方法がありましたら教えてください。
62: 2008/06/01(日)14:26 ID:vBepI6CX(1/6) AAS
#!/usr/bin/python
import pygtk
import gtk, gobject

win = gtk.Window()
win.set_default_size(200, 200)
win.connect('destroy', gtk.main_quit)

def create_invisible_cursor():
    pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
    color = gtk.gdk.Color()
    return gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)
省10
63: 2008/06/01(日)14:46 ID:vBepI6CX(2/6) AAS
ちょっと修正

#!/usr/bin/python
import pygtk; pygtk.require("2.0")
import gtk, gobject

win = gtk.Window()
win.set_default_size(200, 200)
win.connect('destroy', gtk.main_quit)

def create_invisible_cursor():
    pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
    color = gtk.gdk.Color()
省13
64: 2008/06/01(日)15:01 ID:Qfk/evfC(2/8) AAS
ありがとうございます。
c言語でコーディングしているのでcで書いていただければ。。。
すみませんcしかわからないもので。

GdkCursor cursor;
gchar bits[32] = { 0};
GdkBitmap *bitmap;
GdkColor color = {0, 0, 0, 0};

bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8);
gdk_window_set_cursor(window, cursor);
省2
65: 2008/06/01(日)15:32 ID:vBepI6CX(3/6) AAS
試してみたらそれでうまく動くようだが。
gdk_window_set_cursor() の呼び出しはちゃんとしてる?
66: 2008/06/01(日)15:36 ID:Qfk/evfC(3/8) AAS
ちょっと修正です。

GtkWidget window;
GdkCursor cursor;
gchar bits[32] = { 0};
GdkBitmap *bitmap;
GdkColor color = {0, 0, 0, 0};

bitmap = gdk_bitmap_create_from_data(NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap(bitmap, bitmap, &color, &color, 8, 8);
gdk_window_set_cursor(window->window, cursor);

これで実行すると、
省2
67: 2008/06/01(日)15:41 ID:vBepI6CX(4/6) AAS
#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
    GtkWidget *window;
    GdkCursor *cursor;
    GdkBitmap *bitmap;
    gchar bits[32] = {0};
    GdkColor color = {0, 0, 0, 0};

    gtk_init(&argc, &argv);
   
省11
68: 2008/06/01(日)15:45 ID:vBepI6CX(5/6) AAS
gtk_widget_realize() 前の widget->window を触ろうとしてるのが原因かな?
69: 2008/06/01(日)16:04 ID:wQKPJ8Cz(1) AAS
古いバージョンGtkを使ってたりしない?昔そういうのでハマったおぼえがある
70: 2008/06/01(日)16:10 ID:Qfk/evfC(4/8) AAS
67のようにしたらエラーはでませんけど、カーソルは透明になりません。

windowの上に、水平ボックスや垂直ボックスをパッキングしているから
gdk_window_set_cursor(window->window, cursor);
で消えないとかはありますか?

gtk_widget_realizeについて調べてみます。

gtk-config --version をしたら1.2.10とでてきました。
71: 2008/06/01(日)16:17 ID:Qfk/evfC(5/8) AAS
gtk_widget_realizeしても状況変わらずです。
ソースはこうなってます。

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

GtkWidget *window; /* メインウインドウ */
GtkWidget *test_window; /* テストウインドウ */
GtkWidget *button_start; /* スタートボタン */
GtkWidget *button_quit; /* 終了ボタン */
GtkWidget *hbox; /* 垂直ボックス */
GtkWidget *vbox; /* 水平ボックス */
省16
72: 2008/06/01(日)16:17 ID:Qfk/evfC(6/8) AAS
/* ウインドウを画面サイズに合わせる */
gtk_window_resize( GTK_WINDOW( window), gdk_screen_width(), gdk_screen_height());

/* delete_eventが発生したらdelete_eventを実行する */
g_signal_connect( G_OBJECT( window), "delete_event",
G_CALLBACK( delete_event), NULL);

/* 水平ボックスの中にスタートボタンと終了ボタンをパッキング */
gtk_box_pack_start( GTK_BOX(hbox), button_start, TRUE, FALSE, 5);
gtk_widget_show( button_start);
gtk_box_pack_start( GTK_BOX(hbox), button_quit, TRUE, FALSE, 5);
gtk_widget_show( button_quit);
省7
73: 2008/06/01(日)16:20 ID:Qfk/evfC(7/8) AAS
/* メインウインドウに垂直ボックスをパッキング */
gtk_container_add( GTK_CONTAINER( window), vbox);

gtk_widget_show_all( window);

bitmap = gdk_bitmap_create_from_data( NULL, bits, 16, 16);
cursor = gdk_cursor_new_from_pixmap( bitmap, bitmap, &cursor_color, &cursor_color, 8, 8);
gdk_window_set_cursor( drawingarea->window, cursor);

gtk_main();

return 0;
}
74: 2008/06/01(日)16:46 ID:vBepI6CX(6/6) AAS
2.12.9 だけど、それでちゃんと動くよ
75: 2008/06/01(日)16:51 ID:Qfk/evfC(8/8) AAS
ありがとうございます。
バージョンをあげてからやってみます。
76
(1): 2008/06/02(月)16:55 ID:2n4LDSUT(1/2) AAS
gtk+プログラミングについてお薦めの本とか出てないのでしょうか?
不勉強で付属のチュートリアルだといまひとつ良くわからなかったもので…。
77
(2): 2008/06/02(月)17:09 ID:vhO0kEsD(1) AAS
日本語の本で勧められるようなのはないみたいです。

どっかの大学の先生が書いたPDFが参考になるかもしれません。
外部リンク:www.iim.ics.tut.ac.jp

個人的にはC言語以外の他の言語バインディングを使うのがおすすめです。
外部リンク[html]:www.gtk.org
78: 76 2008/06/02(月)18:02 ID:2n4LDSUT(2/2) AAS
>>77
早速教えていただいてありがとうございます。
参考にして勉強して行きますね。
79: 2008/07/20(日)20:11 ID:hZzIJHG7(1) AAS
AMD、OpenGL性能を最大33%高速化させたLinux向けドライバ
外部リンク[htm]:pc.watch.impress.co.jp
80: 2008/09/15(月)23:03 ID:EmRnvQ2i(1) AAS
てs
1-
あと 922 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.013s