Linux 版 (精华区)
发信人: netiscpu (平淡是真), 信区: Linux
标 题: GTK入门导引(11)
发信站: 紫 丁 香 (Mon Dec 14 14:43:43 1998), 转信
发信人: hey (吟风·悠游98), 信区: Unix
标 题: GTK入门导引(11)
发信站: 华南网木棉站 (Tue Nov 10 11:04:07 1998), 转信
11. 档案选取物件
档案选取物件是个又快又简单的方法来产生一个File dialog box. 它有Ok,
Cancel, 及Help按钮, 可以大量缩短开发时间.
要产生一个新的档案选取物件可用:
GtkWidget* gtk_file_selection_new (gchar *title);
要设定档名, 例如指定目录, 或给定内定档名, 可用这个函数:
void gtk_file_selection_set_filename (GtkFileSelection *filesel, gchar *filename);
要取得使用者输入的名称, 可用以下函数:
gchar* gtk_file_selection_get_filename (GtkFileSelection *filesel);
另外还有指标指向档案选取物件的内容:
dir_list
file_list
selection_entry
selection_text
main_vbox
ok_button
cancel_button
help_button
当然了您会想要用ok_button, cancel_button, 及help_button指标用来处理信
号.
在这里包含了从testgtk.c偷来的一个范例, 修改成自己的版本. 在此您可以看
到, 要产生一个档案选取物件不需要做太多事. 在此, 在这个范例中, Help
button显示在萤幕中, 它没做什么事, 因为没有信号接在上面.
#include <gtk/gtk.h>
/* 取得选取的档名并显示在萤幕上 */
void file_ok_sel (GtkWidget *w, GtkFileSelection *fs)
{
g_print ("%s\n", gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
}
void destroy (GtkWidget *widget, gpointer *data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
GtkWidget *filew;
gtk_init (&argc, &argv);
/* 产生新的档案选取物件 */
filew = gtk_file_selection_new ("File selection");
gtk_signal_connect (GTK_OBJECT (filew), "destroy",
(GtkSignalFunc) destroy, &filew);
/* 把ok_button接到file_ok_sel功能 */
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", (GtkSignalFunc) file_ok_sel, filew );
/* 把cancel_button接到destroy物件 */
gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", (GtkSignalFunc) gtk_widget_destroy,
GTK_OBJECT (filew));
/* 设定档名, 就像是要存一个档案一样, 而我们是给定一个内定档名 */
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"penguin.png");
gtk_widget_show(filew);
gtk_main ();
return 0;
}
--
6m3m┌───────────────────────┐0m
6m3m│ 4m疾如风,徐如林,侵掠如火,不动如山 3m│4m 0m
6m3m└───────────────────────┘0m4m 0m
4m 0m
m;32m※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.212.66]m
--
m;32m※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: mtlab.hit.edu.cn]
--
Enjoy Linux!
-----It's FREE!-----
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.068毫秒