[代码实例][gtk+]Grid布局

GTK+3.0入门:用C语言打造你的第一个跨平台GUI应用(附完整代码) 本文是GTK+3.0的入门指南,详细介绍了如何使用C语言开发跨平台GUI应用。文章从环境搭建讲起,涵盖Linux、macOS和Windows三大平台,并深入解析GTK+的对象、信号与容器等核心概念。通过构建一个功能完整的计算器项目,手把手演示了界面创建、事件处理及逻辑实现,并对比了纯代码与GtkBuilder两种开发方式,最后提供了编译打包及跨平台部署的实用建议。 阅读详情
#include <gtk/gtk.h>

static void activate(GtkApplication * app, gpointer user_date);
static void print_hello(GtkWidget *widget, gpointer data);

int main(int argc, char * argv[])
{
    GtkApplication * app;
    int status;

    app = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
    status = g_application_run(G_APPLICATION(app), argc, argv);
    g_object_unref(app);

    return status;
}

static void activate(GtkApplication * app, gpointer user_date)
{
    GtkWidget * window;
    GtkWidget * grid;
    GtkWidget * button;

    window = gtk_application_window_new(app);
    gtk_window_set_title(GTK_WINDOW(window), "Window");
    gtk_container_set_border_width(GTK_CONTAINER(window), 10);

    grid = gtk_grid_new();
    gtk_container_add(GTK_CONTAINER(window), grid);

    button = gtk_button_new_with_label("Button 1");
    g_signal_connect(button, "clicked", G_CALLBACK(print_hello), NULL);
    gtk_grid_attach(GTK_GRID(grid), button, 0, 0, 1, 1);

    button = gtk_button_new_with_label("Button 2");
    g_signal_connect(button, "clicked", G_CALLBACK(print_hello), NULL);
    gtk_grid_attach(GTK_GRID(grid), button, 1, 0, 1, 1);

    button = gtk_button_new_with_label("Quit");
    g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_widget_destroy), window);
    gtk_grid_attach(GTK_GRID(grid), button, 0, 1, 2, 1);

    gtk_widget_show_all(window);
}

static void print_hello(GtkWidget *widget, gpointer data)
{
    g_print("Hello World\n");
}

Makefile:

main: main.c
    gcc main.c -o main `pkg-config --cflags --libs gtk+-3.0`
python界面开发 - 布局管理器 1. python图形界面开发 1.1. Tkinter 1.2. PyQt 1.3. wxPython 1.4. PyGTK:基于GTK 1.5. Kivy 1.6. 可视化工具 2. Tkinter 开发 3. 布局管理器 3.1. 布局管理器 pack() 3.2. 布局管理器 grid() 3.3. 布局管理器 place() 阅读详情

相关推荐

【c/python】GtkGrid

方法,它设置的将是按钮的结束边的边距,而不是始终是右边的边距,它会根据应用内容的语言方向发生变化。,因为后者不再是国际化的好选择。新的方法是基于文本方向敏感的边距设定,其中 "end" 表示在水平方向上的边距,当语言是从右到左的文字时,就变成了右边距,而对于从左到右的语言,则是左边距。表明,正在使用的方法已经被废弃,也就是说,在未来的 GTK 版本中,此方法可能会被移除。在 GTK 3 和 GTK 4 中,`GtkGrid` 的使用方法有所不同,下面将给出一个简单的例程,展示如何在 GTK 3 中使用。

数字人生 1172

go-gtk3开发之Grid布局(5)

go-gtk3开发之添加按钮并关闭窗口案例说明demo.go 案例说明 关闭一个窗口可以点击标题栏上的X。 在下面的例子中,我们将展示我们如何通过编程来关闭窗口。 demo.go package main import ( "fmt" "github.com/therecipe/qt/gui" "github.com/therecipe/qt/widgets" "os" ) // ...

清风冷吟 568

GTK窗体控件布局--自由布局(GtkFixed)和表格布局(GtkTable)

GTK窗口属于只能容纳一个控件的容器

m0_60352504的博客 1412

Gtk+-3.0实例4.使用GtkGrid和GtkTable制作简单计算器界面

Gtk+-3.0实例4.使用GtkGrid和GtkTable制作简单计算器界面。

CS_Jack的专栏 848

gtk_表格布局

在linux下用C 语言实现的gtk表格布局,里面有可执行文件可以直接运行

WRF模式学习入门基础(建议收藏!!!)

本文详细介绍了WRF-ARW(Advanced Research WRF)模式的结构组成,重点讲解了前处理系统(WPS)和主模式中的各个关键程序的功能与流程。通过对geogrid、ungrib、metgrid、real和wrf等模块的逐步解析,帮助初学者全面理解数值天气预报模型在初始化和运行过程中所需的关键步骤。

2503_90234341的博客 3075

GtkGrid demo2.c

???? 这次学习记录以下4个函数 void // 函数1:是否设置所有的行都具备相同的高度 gtk_grid_set_row_homogeneous (GtkGrid *grid, gboolean homogeneous); void // 函数2:是否设置所有的列都具备相同的宽度 gtk_grid_set_column_homogeneous (GtkGrid *grid, gboolean homogeneous); void gtk_grid_set_row_spacing (GtkGrid

weixin_44374594的博客 243

VMware VSAN 高级参数介绍(测试用)

VSAN 的策略驱动让我们看到了VSAN无穷的潜力,其设计思路相当新颖,在一个基础资源池上使用策略就能实现不同对象的区分服务,而目前没有其他厂家能到VMware这样的高度。 VSAN 呈现给用户配置很简单,但实际上设计及后台比较复杂。笔者无意间发现了VSAN的隐藏高级参数设置,有很多好玩的选项想分享出来。这些参数全部是针对每主机进行设置的。VSAN 中有很多默认设置,这些设置应该都是研发人员多次测试得出的最优值,修改可能导致环境异常,并不建议修改! 目录 参数1:全闪配置下 SSD 写缓存最大.

山水牧羊 2031

GtkGrid gtk_grid_attach

void gtk_grid_attach (GtkGrid *grid, GtkWidget *child, gint left, // 左,相当于第一列,从0开始,跟数组一样 gint top, // 上,相当于第一行,从0开始 gint width, gint height); // demo.c #include <gtk/

weixin_44374594的博客 706

IIS - 会话cookie中缺少HttpOnly属性

不啰嗦,我们直接开始! 先进行常规设置 打开配置编辑器 选中图中节点,将httpOnlyCookies设置为true 然后。。。不起作用。。。 换种方式 通过配置出站规则getcookie添加HttpOnly 在Web.config中添加如下出站规则 <rewrite> <outboundRules> <rule name="Add HttpOnly"> <match serverVa.

。 21万+

【驭风计划 算法训练营】周测4:习题11-4、8-4、12-4

给出 nn 个非负整数 x1,x2,⋯,xnx1,x2,⋯,xn,有 qq 个询问,第 jj 个询问给出一个非负整数 yjyj,求其中,xor 表示按位异或运算。

Mege1的博客 1043

easyui grid 添加按钮_用GTK+来创建一个带界面的C语言程序5—用网格容器排列按钮...

在这一节中将学习如何使用框架控件和能容纳多行和多列控件的网格容器以及如何灵活在网格容器中排放控件。盒状容器只能容纳一行或者一列控件,如何容纳多行多列控件呢?向盒状容器中再添加盒状容器。这当然是创建多行多列控件布局的一个好方法。还有一个方法就是使用网格容器(GtkGrid)控件。网格容器是一种能容纳多行多列控件且简单易用的容器,它提供了坐标方式表示控件所要摆放的位置,使按行列排列多个控件变得更加简单...

weixin_32098487的博客 281

Palantir如何利用Ontology构建企业级数据地图

Palantir通过"本体论"(Ontology)技术构建动态数据地图,将多源异构数据转化为可操作的业务知识网络。该技术突破传统ETL模式,建立覆盖全组织的语义层,将原始数据映射为"客户""订单"等业务对象及其关联关系,形成可推理的语义网络。核心Foundry平台提供本体管理工具(OMA)和开发套件(OSDK),支持从数据连接到应用开发的全流程。虽然采用专有实现而非标准本体语言,但该架构成功解决了数据孤岛问题,赋能复杂决策分析

Learning 1797

第40页的gtk+编程例子——组合网格

以下gtk+编程例子是来自书籍《实用技术:开发Linux应用——用GTK+和GDK开发Linux图形用户界面应用》第40页的内容——组合网格 在openSUSE-Leap-15.3-DVD-x86_64的gnome3.34.7桌面环境下编译的,其中pkg-config --cflags --libs gtk±3.0两边有反引号括起来的 ruhong@localhost:~/gtk> gcc page4002.c -o page4002 pkg-config --cflags --libs gtk±3.

weixin_42145772的博客 405

Response Instance 详解:在 ABAP OData Client Proxy 中读懂每一次响应

ABAP OData Client Proxy中的Response Instance是关键信息载体,封装了业务数据及调用上下文(如分页、delta link等)。响应实例在执行请求后自动生成,根据请求类型返回特定接口(如READ返回/IWBEP/IF_CP_RESPONSE_READ)。响应抽象与OData版本解耦,支持统一处理V2/V4服务。常见响应类型包括单实体读取、列表读取(支持分页和增量同步)、创建/更新/删除响应等。开发时可通过响应对象的安全类型方法获取数据,如get_business_data获

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 137

pyradiomics使用——1. 医学影像的组学特征值(Radiomics Features)提取

文章目录1. 使用插件1.1 插件安装1.2 插件使用2. 使用python代码2.1 安装2.2 使用2.2.1 官方示例2.2.2 快速使用2.2.3 其它使用3. 组学特征字段意义说明 Github地址:https://github.com/AIM-Harvard/pyradiomics 官方文档地址:https://pyradiomics.readthedocs.io/en/latest/features.html 1. 使用插件 从pyradiomics的Github仓库中可以知道,pyradio

啷个哩个啷 7369

GTK+-3.0编程 (四) 网格布局 Grid

GTK+-3.0编程 (四) 网格布局 Grid

张同光 (Tongguang Zhang):Hello everyone ! 2205

《网络安全自学教程》- 防火墙原理分析与Windows防火墙使用配置

防火墙分类及原理,Windows开启防火墙,Windows防火墙添加策略,

wangyuxiang946的博客 1万+

Golang Gtk+3教程:Grid布局

在上个例子中我们使用了box布局,现在让我们来学习另一种布局——grid。其实这几种布局都大同小异,如果你看懂了上一个例子,想必使用grid也不是难事。 程序运行效果: package main import ( "github.com/gotk3/gotk3/glib" "github.com/gotk3/gotk3/gtk" "os" ) func main() ...

weixin_30824599的博客 519

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python gtk页面布局_Python GTK + 3教程 学习笔记 ——(5)布局 与 glade

GTK的布局容器分为两种,一种是single-child容器,继承自Gtk.Bin,另一种是继承自Gtk.Container的multiple-child容器。关于这两类Gtk.Bin和Gtk.Container的层级结构如下:与翻译之前的文章不同,我这里便引入glade这个软件,这是一个UI设计器,gtk是声明式UI,与wpf类似是在配置文件中写好的。当然也可以用代码写,但是这样无法做到UI与后...

weixin_36339710的博客 804

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

第113页的gtk+编程例子——进度条

以下gtk+编程例子是来自书籍《实用技术:开发Linux应用——用GTK+和GDK开发Linux图形用户界面应用》第113页的内容——进度条 例子程序是将110-115页纸内容的代码拼合而成的,已经修改许多地方才能在gtk3.0编译通过,比较难理解就是UpdateProgressTimer函数中nValue值对应UpdateProgress函数中的pos值,UpdateProgressTimer函数中数字100值对应UpdateProgress函数中的len值,这个要使用gdb调试才得知的,在gtk3.0中

weixin_42145772的博客 696

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

GTK+2.0 中的容器控件与布局技巧

GTK+2.0 中的容器控件与布局技巧: http://www.ibm.com/developerworks/cn/linux/l-gtk/part1/

yuanlanxiaup 107

GTK+学习笔记 --- Packing

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34162629的博客 189

gtk_table_attch与gtk_grid_attach的区别

gtk_table_attch与gtk_grid_attach的区别

weixin_42145772的博客 523

Linux 下从头再走 GTK+-3.0 (四)

  实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等。 接下来试试网格布局 Grid。 我们创建 example4.c ,内容如下: #include <gtk/gtk.h> static void print_hello(GtkWidget *button , gpointer data); ...

weixin_30784945的博客 161

WPF 布局

一 写在开头1.1 写在开头评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好。1.2 本文内容本文主要内容为WPF中的常用布局,大部分内容转载至https://blog.youkuaiyun.com/woshisunjiale/article/details/54136323,代码片段可能有所不同。二 WPF中的常用布局因为项目需要,所以得学习WPF开发。WPF使软件界面和逻辑相分离,手...

weixin_30381793的博客 99
上一篇: [代码实例][gtk+]创建按钮
下一篇: [代码实例][gtk+]使用builder创建UI
cloudblaze
博客等级 码龄17年 81粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值