免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2233 | 回复: 2
打印 上一主题 下一主题

求助!如何编写linux的滚动窗口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-15 22:01 |只看该作者 |倒序浏览
哪位高手有linux的滚动窗口的例子,谢谢了!!

论坛徽章:
0
2 [报告]
发表于 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 ) ;
}
/* 示例结束* /

论坛徽章:
0
3 [报告]
发表于 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  ...


编译一大堆的错误。
给个编译命令!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP