《Linux 操作系统设计实践》实验四:图形界面
实验环境:Oracle VM Virtualbox、linux Redhat9
报告内容:
程序代码:
#include
gint delete_event(GtkWidget *widget,GdkEvent*event,gpointer data)
{
gtk_main_quit();
return FALSE;
}
void add(GtkWidget *widget,GtkWidget *entry)
{
int add;
const gchar *entry_text;
entry_text=gtk_entry_get_text(GTK_ENTRY(entry));
add=creat(entry_text,0700);
if(add==-1)
{
printf("cannot create\n");
}
else
perror("create successful\n");
}
void dele(GtkWidget *widget,GtkWidget *entry)
{
int dele;
const gchar *entry_text;
entry_text=gtk_entry_get_text(GTK_ENTRY(entry));
dele=remove(entry_text);
if(dele==-1)
{
printf("cannot delet\n");
}
else
perror("delet successful\n");
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *label;
GtkWidget *box1;
GtkWidget *box2;
GtkWidget *entry;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "添加和删除文件");
g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK
(delete_event), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 50);
box1=gtk_hbox_new(FALSE,0);
box2=gtk_vbox_new(FALSE,0);
gtk_container_add (GTK_CONTAINER (window), box1);
gtk_box_pack_start (GTK_BOX(box1), box2, TRUE, TRUE, 0);
label=gtk_label_new("添加目录:");
gtk_box_pack_start (GTK_BOX(box2), label, TRUE, TRUE, 0);
label=gtk_label_new("删除目录:");
gtk_box_pack_start (GTK_BOX(box2), label, TRUE, TRUE, 0);
box2=gtk_vbox_new(FALSE,0);
gtk_box_pack_start (GTK_BOX(box1), box2, TRUE, TRUE, 0);
entry=gtk_entry_new();
g_signal_connect (G_OBJECT (entry), "activate",G_CALLBACK
(add),entry);
gtk_box_pack_start (GTK_BOX(box2), entry, TRUE, TRUE, 0);
entry=gtk_entry_new();
g_signal_connect (G_OBJECT (entry), "activate",G_CALLBACK
(dele),entry);
gtk_box_pack_start (GTK_BOX(box2), entry, TRUE, TRUE, 0);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
程序截图:
①添加文件
进入所添加的文件橱可看到文件
②删除文件成功时
进入原文件所在处可发现文件 已被删除
③删除失败时
程序思想:
创建一个添加删除窗口,添加成功则在目录中添加一个文件,若失败则在终
端显示错误。
实验五的初拟实验题目和简介:
题目:汽车参数库
简介:设计一个汽车参数库,可录入汽车的长、宽、高、颜色等参
数,可修改某款车的参数,可删除某款车的参数等