作者QCANCER (琉璃螃蟹)
看板C_and_CPP
標題[問題] 還是GtkBluder的問題
時間Tue Jun 30 18:24:31 2009
這次貼上程式碼,比較好釋義
我一直找不到什麼可以來分辨每一個button的工具(code中的 ???)
我是想要用同一個function接受訊號 然後經過分辨button來分別做事情
btest.c
/* 測試Button能否使用同一個函式分辨button */
#include <gtk/gtk.h>
/*
gcc -o btest -Wall -g btest.c `pkg-config gtk+-2.0 --cflags --libs `
-export-dynamic
*/
void test_function( GtkButton *button, gpointer data)
{
switch(???)
{
case ??? :
system("vi");
case ??? :
system("gedit");
default:
g_print("test!!\n");
}
}
int
main( int argc,
char **argv )
{
GtkBuilder *builder;
GtkWidget *window;
GtkWidget *but;
gtk_init( &argc, &argv );
builder = gtk_builder_new();
gtk_builder_add_from_file( builder, "btest.xml", NULL );
window = GTK_WIDGET( gtk_builder_get_object( builder, "window1" ) );
but = GTK_WIDGET( gtk_builder_get_object( builder, "test_function" ) );
gtk_builder_connect_signals( builder, but );
g_object_unref( G_OBJECT( builder ) );
gtk_widget_show_all(window );
gtk_main();
return( 0 );
}
再貼上 xml第一個button的部份
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">vi</property>
<property name="width_request">200</property>
<property name="height_request">40</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal handler="test_function" name="clicked"/>
</object>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.19.50
推 jlovet:GtkWidget有一個property叫 gchar * name 應該可以用 06/30 21:34
→ jlovet:gchar * 不夠用的話,還可以用GObject的 g_object_set_data 06/30 21:36
→ QCANCER:前面也有好心人回我 g_object_set_data 可是我看不是很懂 06/30 22:10
→ QCANCER:如何使用這個function,請問有範例可以看嗎? 06/30 22:10
→ jlovet:google一下g_object_set_data,g_object_get_data 06/30 23:20
→ QCANCER:g_object_get_data似乎無法使用咧,因為要先set 07/01 16:37
→ QCANCER:我的目的是想以後只要新增在xml就好 07/01 16:39