gtk + glade简单应用

本教程介绍如何使用GTK在窗口中实现按钮点击事件,通过加减按钮改变标签上的数字显示,涉及信号连接与回调函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.bailangcn.tk/?post=11


今天的教程主要是简单事件的绑定。

   首先是在上个教程所做的窗口上加上容器里的“固定的” 然后在窗口的左边放置两个按钮 一个名称改成add 标签改成+   另一个名称改成sub 标签改成—,然后在按钮的右边放置一个标签  将名称改成label 标签改成0   另存为addsub.glade 如图

点击查看原图

   打开输入以下代码 并保存为test.c  (具体请看注释)

/*

作者:bailangcn

时间:2012/3/14

作者主页:bailangcn.tk

*/

  #include <gtk/gtk.h>
gint num=0;
char buf[5];

void add_label(GtkWidget *widget, gpointer label)
{
    num++;
    sprintf(buf,"%d",num);
      /*这是gtk的一个函数,用来给Label设定文字*/
 gtk_label_set_text(GTK_LABEL(label),buf);
 }
void sub_label(GtkWidget *widget, gpointer label)
{
    num--;
    sprintf(buf,"%d",num);
     /*这是gtk的一个函数,用来给Label设定文字*/
 gtk_label_set_text(GTK_LABEL(label),buf);
 }
int main(int argc, char *argv[])
{
    GtkBuilder *builder;

    gtk_init(&argc, &argv);
    GtkWidget *window;
    GtkWidget *add;
    GtkWidget *sub;
    GtkWidget *label;
    builder = gtk_builder_new();
    gtk_builder_add_from_file(builder, "addsub.glade", NULL);

    window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
    add = GTK_WIDGET(gtk_builder_get_object(builder, "add"));
    sub = GTK_WIDGET(gtk_builder_get_object(builder, "sub"));
    label = GTK_WIDGET(gtk_builder_get_object(builder, "label"));

    g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
    g_signal_connect(G_OBJECT(add),"clicked",G_CALLBACK(add_label),(gpointer)label);
    g_signal_connect(G_OBJECT(sub),"clicked",G_CALLBACK(sub_label),(gpointer)label);
    gtk_builder_connect_signals(builder, NULL);
    // 释放builder的空间
    g_object_unref(G_OBJECT(builder));

    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}

编译命令:

gcc -o test test.c `pkg-config --cflags --libs gtk+-2.0`

 运行如下:(按下加按钮 右边的数字加一  按下减  数字减一)

点击查看原图


资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值