现在的位置: 首页 > 综合 > 正文

今天用GTK写的一个界面,挺简单的。算是我的入门之作吧。

2013年10月06日 ⁄ 综合 ⁄ 共 8366字 ⁄ 字号 评论关闭

#include<gtk/gtk.h>
static GtkWidget *credits_window;
GtkWidget *create_credits ()
{
  GtkWidget *window;
  GtkWidget *vbox,*hbox;
  GtkWidget *notebook,*button;
  GtkWidget *page,*viewport;
  GtkWidget *label,*text;
  GtkWidget *entry,*image;//个人信息中的。
  GdkPixbuf *pixbuf;
  GtkTextBuffer *text_buffer;
    GtkWidget *view;

  window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(window),"kai fa ren yuan");
  vbox=gtk_vbox_new(FALSE,0);
  gtk_container_add(GTK_CONTAINER(window),vbox);
  notebook=gtk_notebook_new();
  gtk_box_pack_start(GTK_BOX(vbox),notebook,TRUE,TRUE,5);

   page=gtk_vbox_new(FALSE,0);
 
//    viewport = gtk_viewport_new(NULL, NULL);
//    gtk_box_pack_start(GTK_BOX(page), viewport, TRUE, TRUE, 5);

     view=gtk_scrolled_window_new(NULL,NULL);//
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(view),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
    text = gtk_text_view_new();
     gtk_box_pack_start(GTK_BOX(page),view,TRUE,TRUE,5);//vbox
        gtk_container_add(GTK_CONTAINER(view),text);
//    gtk_container_add(GTK_CONTAINER(viewport), view);
    text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));

        hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 5);
   

    button = gtk_button_new_with_label("确认发布");
    g_signal_connect(G_OBJECT(button), "clicked",
             G_CALLBACK(gtk_main_quit), NULL);//
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
    button = gtk_button_new_with_label("    取消    ");
    g_signal_connect(G_OBJECT(button), "clicked",
        G_CALLBACK(gtk_main_quit), NULL);
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
 
 
  label=gtk_label_new("发布通知");
  gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label);
//=================================================================================
  page=gtk_vbox_new(FALSE,0);
   view=gtk_scrolled_window_new(NULL,NULL);//
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(view),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
    text = gtk_text_view_new();
     gtk_box_pack_start(GTK_BOX(page),view,TRUE,TRUE,5);//vbox
        gtk_container_add(GTK_CONTAINER(view),text);
  //viewport = gtk_viewport_new(NULL, NULL);
    //gtk_box_pack_start(GTK_BOX(page), viewport, TRUE, TRUE, 5);
    //text = gtk_text_view_new();
    //gtk_container_add(GTK_CONTAINER(viewport), text);
    text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));

        hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 5);
   
   
    button = gtk_button_new_with_label("批准请假");
    g_signal_connect(G_OBJECT(button), "clicked",
             G_CALLBACK(gtk_main_quit), NULL);//
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
    button = gtk_button_new_with_label("   不批准   ");
    g_signal_connect(G_OBJECT(button), "clicked",
        G_CALLBACK(gtk_main_quit), NULL);
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
 

  label=gtk_label_new("审批请假");
  gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label);

//=====================================================================================
  page=gtk_vbox_new(FALSE,0);
 // label=gtk_label_new("yu 1123/nhello,nice to meet you /n glad to see you again");
  hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,FALSE,0);
 
  viewport=gtk_viewport_new(NULL,NULL);
  gtk_container_add(GTK_CONTAINER(page),viewport);
  pixbuf=gdk_pixbuf_new_from_file("gnome-spider.png",NULL);
  image=gtk_image_new_from_pixbuf(pixbuf);
  gtk_container_add(GTK_CONTAINER(viewport),image);
  hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,FALSE,0);

  label=gtk_label_new("   学号:   ");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  label=gtk_label_new("   姓名:   ");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,FALSE,0);

  label=gtk_label_new("   电话:   ");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);
 
  label=gtk_label_new("   成绩:   ");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,FALSE,0);

  label=gtk_label_new("请假次数:");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  label=gtk_label_new("迟到次数:");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,FALSE,0);

  label=gtk_label_new("旷课次数:");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  label=gtk_label_new("早退次数:");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  entry=gtk_entry_new();
  gtk_box_pack_start(GTK_BOX(hbox),entry,FALSE,FALSE,0);

  hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,TRUE,0);

  label=gtk_label_new("获奖情况:");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);

  viewport=gtk_viewport_new(NULL,NULL);
  gtk_container_add(GTK_CONTAINER(hbox),viewport);
  text = gtk_text_view_new();
  gtk_container_add(GTK_CONTAINER(viewport), text);
  text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));

 hbox=gtk_hbox_new(FALSE,5);
  gtk_box_pack_start(GTK_BOX(page),hbox,FALSE,TRUE,0);

  label=gtk_label_new("处分情况:");
  gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
  viewport=gtk_viewport_new(NULL,NULL);
  gtk_container_add(GTK_CONTAINER(hbox),viewport);
  text = gtk_text_view_new();
  gtk_container_add(GTK_CONTAINER(viewport), text);
  text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
 
  //gtk_box_pack_start(GTK_BOX(page),viewport,FALSE,FALSE,5);
  label=gtk_label_new("班级信息");
  gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label);
//============================================================
  page=gtk_vbox_new(FALSE,0);
        view=gtk_scrolled_window_new(NULL,NULL);//
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(view),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
    text = gtk_text_view_new();
     gtk_box_pack_start(GTK_BOX(page),view,TRUE,TRUE,5);//vbox
        gtk_container_add(GTK_CONTAINER(view),text);
//    viewport = gtk_viewport_new(NULL, NULL);
//    gtk_box_pack_start(GTK_BOX(page), viewport, TRUE, TRUE, 5);
//    text = gtk_text_view_new();
//    gtk_container_add(GTK_CONTAINER(viewport), text);
    text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));

        hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 5);
   

 // gtk_box_pack_start(GTK_BOX(page),label,FALSE,FALSE,5);
  label=gtk_label_new("留言板");
  gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,label);
//=================================================================
  gtk_widget_show_all(window);
  return window;

}
void show_credits()
{
  credits_window=create_credits();
  gtk_widget_show(credits_window);

}
int main(int argc,char *argv[])
{
  GtkWidget *window;
  GtkWidget *bbox;
  GtkWidget *vbox;
  GtkWidget *label;
  GtkWidget *image;
  GtkWidget *sep;
  GtkWidget *button;
  gtk_init(&argc,&argv);
  window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
  g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
  gtk_window_set_title(GTK_WINDOW(window),"about dialog");
  gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
  gtk_container_set_border_width(GTK_CONTAINER(window),10);

  vbox=gtk_vbox_new(FALSE,0);
  gtk_container_add(GTK_CONTAINER(window),vbox);
  image=gtk_image_new_from_file("gnome-spider.png");
  gtk_box_pack_start(GTK_BOX(vbox),image,FALSE,FALSE,5);
  label=gtk_label_new(NULL);
  gtk_label_set_markup(GTK_LABEL(label),"<span><big>GTK+2.0 shi li pian cheng</big></span>");
  gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,5);
  sep=gtk_hseparator_new();
  gtk_box_pack_start(GTK_BOX(vbox),sep,FALSE,FALSE,5);
  bbox=gtk_hbutton_box_new();
  gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox),GTK_BUTTONBOX_EDGE);

  gtk_box_pack_start(GTK_BOX(vbox),bbox,FALSE,FALSE,5);
  button=gtk_button_new_with_label("kai fa ren yuan");
  //  gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,5);
  g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(show_credits),NULL);
  gtk_box_pack_start(GTK_BOX(bbox),button,FALSE,FALSE,35);
  gtk_widget_show_all(window);
  gtk_main();
  return FALSE;
}

【上篇】
【下篇】

抱歉!评论已关闭.