如何取得widget的指针。

软件和网站开发以及相关技术探讨
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

如何取得widget的指针。

#1

帖子 eexpress » 2005-10-05 0:06

void on_button1_clicked (GtkButton *button, gpointer user_data)
{
//只有一个*button可以取得。
GtkWidget *w=lookup_widget (GTK_WIDGET(button), "entry2");
//使用包含的h文件中的lookup_widget可以。

GtkEntry *t; // = button->parent->entry2
//能不能这样取?


t=GTK_ENTRY(w);
//强制转换成GtkEntry*。
}
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2005-10-05 0:14

button->parent可以。就是不知道是取得的是窗口指针还是表(table)的指针。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#3

帖子 eexpress » 2005-10-05 0:27

干脆。那位知道有gtk或者glade的电子书。给个吧。
● 鸣学
jjgod
帖子: 29
注册时间: 2005-08-20 3:56
送出感谢: 0
接收感谢: 0

#4

帖子 jjgod » 2005-10-05 1:56

似乎电子版的只有 tutorial 和 developer.gnome.org 的一本,不过也不丰富。GTK/GNOME 的国外出了不少书,但引进国内的不多,手头有本 Wrox 出的 GTK+/GNOME 程序开发,不过是 GTK+ 1.2 时代的了,估计其他的书也滞后得很厉害。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#5

帖子 eexpress » 2005-10-05 10:57

那就是连书也没的买了。还准备下午去找本的。
倒是下了glib和gtk的htm包。不过不详细。好多东西找不到。
其实只有入门那样的,概念清楚了,其他的都不用说,我自己也会找h文件说明。
● 鸣学
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市
送出感谢: 0
接收感谢: 3 次

#6

帖子 yonsan » 2005-10-05 11:14

:o 直接看gtk自带的doc 嘛!! 是html版本的,方便!
在/usr/share/gtk-doc/html/目录下!
I will be back!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#7

帖子 eexpress » 2005-10-05 11:27

:lol: :lol: :lol: :lol: :lol: :lol:
马后炮。我昨天晚上下了gtk和glib的。不过是最新的。

我搜索一个东西都没有说明。只是说要不用gtk_..而用新的g_...。名字忘记了。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#8

帖子 eexpress » 2005-10-05 11:37

就是g_object_get_data找不到原型。
● 鸣学
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市
送出感谢: 0
接收感谢: 3 次

#9

帖子 yonsan » 2005-10-05 11:41

g_object_get_data ()

代码: 全选

gpointer g_object_get_data (GObject *object, const gchar *key);
Gets a named field from the objects table of associations (see g_object_set_data()).
object : GObject containing the associations
key : name of the key for that association
Returns : the data if found, or NULL if no such data exists.

是这个吗? 呵呵!
I will be back!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#10

帖子 eexpress » 2005-10-05 11:46

哪里找的。我就是搜索文件内容都没找到的。
● 鸣学
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市
送出感谢: 0
接收感谢: 3 次

#11

帖子 yonsan » 2005-10-05 11:48

:o "马后炮"告诉你去看gtk源码自带的doc
I will be back!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#12

帖子 eexpress » 2005-10-05 12:12

之前就搜索文件内容。没有这个啊。
● 鸣学
jjgod
帖子: 29
注册时间: 2005-08-20 3:56
送出感谢: 0
接收感谢: 0

#13

帖子 jjgod » 2005-10-05 12:27

sudo apt-get install libgtk2.0-doc
在 /usr/share/doc/libgtk2.0-doc/ 下 grep
再看看这个包推荐安装的包,基本上 glib, atk, pango 等都齐了。
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市
送出感谢: 0
接收感谢: 3 次

#14

帖子 yonsan » 2005-10-05 12:31

eexpress 写了:之前就搜索文件内容。没有这个啊。
jjgod说得对.
你不会是gtk的doc 都未安装吧? 晕!
I will be back!
jjgod
帖子: 29
注册时间: 2005-08-20 3:56
送出感谢: 0
接收感谢: 0

#15

帖子 jjgod » 2005-10-05 12:53

发现 ubuntu 的 package 维护得真是够快,至少是这几个,昨天刚刚装的 libgtk2.0 的一堆,是 gtk 2.8.4 的,今天就更新了昨天发布的 gtk 2.8.6,cairo 的 1.0.2 也是今天就更新了,早知道就不自己编译了。

可为什么 freetype 2.1.10 就是不更新呢...
回复

回到 “软件/网站开发”