Chinaunix

标题: 求助!如何编写linux的滚动窗口 [打印本页]

作者: 水水晶晶    时间: 2007-04-15 22:01
标题: 求助!如何编写linux的滚动窗口
哪位高手有linux的滚动窗口的例子,谢谢了!!
作者: zhyustar    时间: 2007-04-19 10:49
#include <gtk/gtk.h>
void destroy(GtkWidget *widget, gpointer data)
{
  g t k _ m a i n _ q u i t ( ) ;
}

int main (int argc, char *argv[])
{
static GtkWidget *window;
GtkWidget *scrolled_window;
GtkWidget *table;
GtkWidget *button;
char buffer[32];
int i, j;gtk_init (&argc, &argv);
/* 创建一个新的对话框构件,滚动窗口构件就放在这个窗口上* /
window = gtk_dialog_new ();
gtk_signal_connect (GTK_OBJECT (window), "destroy",
(GtkSignalFunc) destroy, NULL);
gtk_window_set_title (GTK_WINDOW (window), "GtkScrolledWindow example");
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
gtk_widget_set_usize(window, 300, 300);
/* 创建一个新的滚动窗口构件* /
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
/* 滚动条的出现方式可以是GTK_POLICY AUTOMAT或ICG T K _ P O L I C Y _ A L W A Y S。
* 设为G T K _ P O L I C Y _ A U T O M A T I C将自动决定是否需要出现滚动条
* 而设为G T K _ P O L I C Y _ A L W A Y S,将一直显示一个滚动条
* 第一个是水平滚动条,第二个是垂直滚动条
* */
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
G T K _ P O L I C Y _ A L W A Y S ) ;
/* 对话框窗口内部包含一个v b o x构件*/
gtk_box_pack_start (GTK_BOX (GTK_DIALOG(window)->vbox), scrolled_window,
TRUE, TRUE, 0);
gtk_widget_show (scrolled_windo/* 创建一个包含1 0×1 0个方格的表格GtkTable */
table = gtk_table_new (10, 10, FALSE);
/* 设置x和y方向的行间间距为1 0像素* /
gtk_table_set_row_spacings (GTK_TABLE (table), 10);
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
/* 将表格组装到滚动窗口构件中* /
gtk_scrolled_window_add_with_viewport (
GTK_SCROLLED_WINDOW (scrolled_window), table);
gtk_widget_show (table);
/* 在表格中添加切换按钮以展示滚动窗口构件* /
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++) {
sprintf (buffer, "button (%d,%d)\n", i, j);w);
button = gtk_toggle_button_new_with_label (buffer);
gtk_table_attach_defaults (GTK_TABLE (table), button,
i, i+1, j, j+1);
gtk_widget_show (button);
}
/* 在对话框的底部添加一个" c l o s e "按钮* /
button = gtk_button_new_with_label ("close");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
(GtkSignalFunc) gtk_widget_destroy,
GTK_OBJECT (window));
/* 让按钮成为缺省按钮* /
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area),
button, TRUE, TRUE, 0);
/* 让按钮固定为缺省按钮,只要按回车键就相当于点击了这个按钮* /
gtk_widget_grab_default (button);
gtk_widget_show (button);
gtk_widget_show (window);
g t k _ m a i n ( ) ;
r e t u r n ( 0 ) ;
}
/* 示例结束* /
作者: goooogo    时间: 2007-04-19 23:17
原帖由 zhyustar 于 2007-4-19 10:49 发表于 2楼  
#include <gtk/gtk.h>
void destroy(GtkWidget *widget, gpointer data)
{
  g t k _ m a i n _ q u i t ( ) ;
}

int main (int argc, char *argv[])
{
static GtkWidget *window;
GtkWidget  ...


编译一大堆的错误。
给个编译命令!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2