- 論壇徽章:
- 0
|
寫一個(gè)聊天的簡(jiǎn)易窗口,編譯通過,運(yùn)行文件的時(shí)候提示“段錯(cuò)誤”。!
以下是代碼
#include<gtk/gtk.h>
void on_close(GtkButton *CloseButton,GtkWidget *textview )
{
gtk_main_quit();
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *Send_scrolled_win;
GtkWidget *SendButton;
GtkWidget *CloseButton;
GtkWidget *box;
GtkWidget *Button_Box;
GtkWidget *text_view;
GtkWidget *frame;
GtkTextBuffer *buffer;
gtk_init(&argc,&argv);
/*---------------------------創(chuàng)建主窗口---------------------------------------*/
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"時(shí)時(shí)聊天_罡罡出品");
gtk_widget_set_size_request(window,250,250);
gtk_container_set_border_width(GTK_CONTAINER(window),10);
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
g_signal_connect(GTK_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
/*---------------------輸入文本的滾動(dòng)窗口------------------------------------*/
Send_scrolled_win = gtk_scrolled_window_new(NULL,NULL);/*生成滾動(dòng)條的窗口*/
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(Send_scrolled_win),text_view);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Send_scrolled_win),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);/*滾動(dòng)條屬性*/
/*-----------------------------------創(chuàng)建盒子--------------------------------*/
frame = gtk_frame_new("聊天窗口");
gtk_container_add(GTK_CONTAINER(window),frame);
box = gtk_vbox_new(FALSE,0);
gtk_container_add(GTK_CONTAINER(frame),box);
/*------------------------------設(shè)置發(fā)送按鈕------------------------------*/
SendButton = gtk_button_new_with_label("發(fā)送");/*生成發(fā)送按鈕*/
// g_signal_connect(G_OBJECT(SaveButton),"clicked",G_CALLBACK(on_send),(gpointer)Send_textview);/*給按鈕加上回調(diào)函數(shù)*/
/*------------------------------設(shè)置關(guān)閉按鈕------------------------------*/
CloseButton = gtk_button_new_with_label("關(guān)閉");/*生成關(guān)閉按鈕*/
g_signal_connect(G_OBJECT(CloseButton),"clicked",G_CALLBACK(on_close),(gpointer)text_view);
/*------------------------------設(shè)置按鈕盒子------------------------------*/
Button_Box = gtk_hbutton_box_new();/*生成按鈕盒*/
gtk_box_set_spacing(GTK_BOX(Button_Box),1);/*按鈕之間的間隔*/
gtk_button_box_set_layout(GTK_BUTTON_BOX(Button_Box),GTK_BUTTONBOX_END);/*按鈕盒內(nèi)部布局,風(fēng)格是尾對(duì)齊*/
gtk_container_set_border_width(GTK_CONTAINER(Button_Box),5);/*邊框?qū)?/
/*------------------------------文本區(qū)域----------------------------------------*/
text_view = gtk_text_view_new();
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view),GTK_WRAP_WORD);/*處理多行顯示的模式*/
gtk_text_view_set_justification(GTK_TEXT_VIEW(text_view),GTK_JUSTIFY_LEFT);/*控制文字顯示方向的,對(duì)齊方式*/
gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view),TRUE);/*允許text view內(nèi)容修改*/
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text_view),TRUE);/*設(shè)置光標(biāo)可見*/
gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(text_view),5);/*設(shè)置上行距*/
gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(text_view),5);/*設(shè)置下行距*/
gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(text_view),5);/*設(shè)置詞距*/
gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_view),10);/*設(shè)置左邊距*/
gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_view),10);/*設(shè)置右邊距*/
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));
/*--------------------------------裝盒------------------------------------------*/
gtk_container_add(GTK_CONTAINER(box),Send_scrolled_win);/*包裝滾動(dòng)條窗口到主窗口*/
gtk_container_add(GTK_CONTAINER(box),Button_Box);/*把按鈕盒包裝到vbox中*/
gtk_box_pack_start(GTK_BOX(Button_Box),CloseButton,TRUE,TRUE,5);/*把關(guān)閉按鈕包裝到按鈕盒里面去*/
gtk_box_pack_start(GTK_BOX(Button_Box),SendButton,TRUE,TRUE,5);/*把發(fā)送按鈕包裝到按鈕盒里面去*/
//gtk_widget_show(view);
gtk_widget_show_all(window);
gtk_main();
return FALSE;
}
請(qǐng)高手解決。! |
|