Linux 下从头再走 GTK+-3.0 (三)】的更多相关文章

之前我们为窗口添加了一个按钮,接下来让这个按钮丰富一点.并给窗口加上图标. 首先创建 example3,c 的源文件. #include <gtk/gtk.h> static void activate(GtkApplication *app , gpointer data); //从文件中加载一张图片 GdkPixbuf *create_pixbuf(const char *image_name); int main(int argc , char **argv) { GtkApplicat…
原本由于项目需求在 Linux 下学习过一段时间的 GTK+2.0 图形开发,时隔一段时间,想真正深入学习一下 GTK . 这次直接从头学习 GTK+-3.0 ,并写下博文便于日后查看,也方便新手入门. 安装环境参考: Fedora:http://www.cnblogs.com/watsonlong/archive/2011/04/06/2006989.html Ubuntu:http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.htm…
实践中表明,纯粹利用 gtk 函数来创建 UI 是很繁琐的事,需要编写很多代码.怎样才能快速统一的建立 UI 布局呢? 可喜的是 GTK 提供了一个 GtkBuilder 用于快速创建界面.它读取一个 xml 文件.按照 xml 文件中所描述的来创建界面.因此我们需要编写 xml 文件. 创建example.ui ,内容如下: <?xml version="1.0" encoding="UTF-8"?> <interface> <obj…
在 GTK3 中增加了一个 GtkApplicaton 类,便于我们处理多窗口程序,同时有了 GtkApplication 我们也更容易创建灵活,易用,界面美观的应用程序. 在前面的几个例子中,演示了如何利用 GtkApplication 直接创建单个窗口,并知道了在哪里设计我们的 UI .以及简单尝试了 GtkBuilder . 接下来,我们走进 GtkApplication .采用面向对象的设计方式设计我们的应用. 我们想要封装一个 MyApp 和 MyAppWindow , 它继承了 Gt…
实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等. 接下来试试网格布局 Grid. 我们创建 example4.c ,内容如下: #include <gtk/gtk.h> static void print_hello(GtkWidget *button , gpointer data); static void activate(GtkApplication *app , gpointer data); int main…
仅仅创建一个空白窗口是不够的,下面我们为创建的窗口添加一个按钮. 以 Hello,World!为例. 首先创建一个源文件:example2.c 内容如下. #include <gtk/gtk.h> //点击按钮后被调用的函数,用于输出hello,world static void print_msg (GtkWidget *button , gpointer data) { printf("Hello , world!\n"); } static void activate…
Linux下使用SSH.Crontab.Rsync三工具实现数据自动备份 作为网管人员大概都无一例外的经历过系统备份,尤其是重要系统的备份.重要数据库系统的备份工作.由于备份是个频繁而琐碎的工作,如何能把这个工作做得即简单又灵活呢?下面就来介绍在Linux下如何使用SSH和Crontab以及Rsync工具来进行数据的自动备份与同步. 一.SSH无密码安全登录 为什么要选择SSH 呢?SSH又是什么呢?可以说它是替代以前Telnet的远程登录工具,SSH的英文全称是Secure Shell.用户可…
1.添加用户## 添加用户组groupadd mysql## 添加用户,指定用户home目录useradd -g mysql mysql -d /data/mysql## 解压下载的mysql二进制包tar -xvf mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz -C /data/mysql## 如果需要修改目录名称,mv修改目录名称,不多说明## 因/data目录有比较大的磁盘空间,防止后期数据量太大,导致磁盘空间不够,将mysql的包及相关配置放在/d…
參考: 网络编程–IO模型演示样例 几种server端IO模型的简介及实现 背景知识 堵塞和非堵塞 对于一个套接字的 I/O通信,它会涉及到两个系统对象.一个是调用这个IO的进程或者线程,还有一个就是系统内核. 比方当一个读操作发生时.它会经历两个阶段: ①等待数据准备 (Waiting for the data to be ready) ②将数据从内核复制到进程中 (Copying the data from the kernel to the process) 堵塞,在linux中,默认情况…
八. 内存区域命令 在默认情形下,连接器可以为section在程序地址空间内分配任意位置的存储区域.并通过输出section描述的> REGION属性显示地将该输出section限定于在程序地址空间内的某块存储区域,当存储区域大小不能满足要求时,连接器会报告该错误. 你也可以用MEMORY命令让在SECTIONS命令内*未*引用的selection分配在程序地址空间内的某个存储区域内. 注意:以下存储区域指的是在程序地址空间内的. MEMORY命令的文法如下, MEMORY { NAME1 [(…