版权声明:本文为博主原创文章,转载请注明出处。 https://www.cnblogs.com/YaoYing/p/12054812.html

前言

领导让做个类似平板触摸的GUI程序,通过触摸两块区域,实现背景图片的左右切换。本来想用QT开发的,了解到前同事用的GTK做的,所以我就接触学习了一下。通过一周的学习和编程,基本功能已经实现,但是效果比较简陋粗糙,不是非常完美。

于是领导改用别的方案了,不知GTK本身是否如此,还是本人学艺不精,这个只能后续慢慢验证。现在把这一周学到的东西和遇到的问题做个笔记,也和大家相互交流学习。

遇到的问题

一、程序运行界面只是打开一个窗口,不能实现全屏显示。

二、程序启动后,鼠标一直都在,想尽办法让鼠标1S隐身,但是还不是完美消失。

三、当触摸两块响应区域的时候,区域背景颜色改变,当手离开时,因为鼠标指针依旧停留在该区域,导致区域背景颜色不能恢复正常,且背景改变的颜色不能修改,只能使用系统默认颜色(灰色)。

学习笔记

什么是GTK

GTK就是一个图形库,利用它可以在GNU/Linux下开发图形界面,是一种主流的开发工具

既然它是一个开发工具,那我们只需要知道如何使用它即可,至于更深层的现在接触不到,以后慢慢研究吧。

安装GTK

更新软件

sudo apt-get update

更新软件库

sudo apt-get upgrade

安装gtk2.0 或者 将gtk+2.0所需的所有文件统通下载安装完毕

sudo apt-get install libgtk2.0-dev
或者
sudo apt-get install libgtk2.0*

查看版本号

pkg-config --modversion gtk+-2.0

出现版本号,表示安装成功

测试程序

#include <gtk/gtk.h>

//主函数
int main (int argc,char * argv[])
{
GtkWidget * window; //初始化整个GTK+程序,是每一个GTK+程序必不可少的部分
gtk_init(&argc,&argv); //创建一个窗口
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //设置串口的标题
gtk_window_set_title(GTK_WINDOW(window),"Test窗口"); //为窗口注册回调函数
g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL); //显示窗口
gtk_widget_show_all(window); //所有的 GTK 程序必须有一个gtk_main()函数。
//程序运行停在这里等待事件(如键盘事件或鼠标事件)的发生。
gtk_main(); return 0;
}

编译代码

把上面的源代码保存到test.c文件中,将test.c文件进行编译生成test可执行文件

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

运行程序

./test

结果如下:

更新日期20191218

如有任何问题,请评论或者私信,非常感谢

【GTK编程】安装与测试的更多相关文章

  1. http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站

    http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站 http_load -p 50 -s 120 urls

  2. my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接

    一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...

  3. OpenCV2+入门系列(一):OpenCV2.4.9的安装与测试

    这里假设看到这篇文章的人都已经对OpenCV以及机器视觉等最基础的概念有了一定的认识,因此本文不会对OpenCV做任何的介绍,而是直接介绍OpenCV2.4.9的安装与测试.此外本文只是简单的介绍如何 ...

  4. 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试

    决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...

  5. coreseek实战(一):windows下coreseek的安装与测试

    coreseek实战(一):windows下coreseek的安装与测试 网上关于 coreseek 在 windows 下安装与使用的教程有很多,官方也有详细的教程,这里我也只是按着官方提供的教程详 ...

  6. Window下memcached安装与测试步骤

    如何在Window下memcached安装与测试步骤 工具/原料 电脑 memcached 软件 方法/步骤 软件包下载 下载Memercached For Windows:http://downlo ...

  7. 【MySql】5.6.14版本的安装和测试

    当前状态:apache2.4.6和php5.5.6已经安装成功: mysql的安装和测试: 一.安装mysql5.6.14,参考http://wenku.baidu.com/link?url=_0jk ...

  8. jdbc_odbc SQLserver 驱动安装及测试

    有2次被问到同一个问题,尽管博客园是.net的园子,我还是分享下吧.PS:我现在做的.net,以前学过点java.献丑了. ------------------ 原始邮件 -------------- ...

  9. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  10. Docker的安装和测试

    1,Docker安装 Docker是啥,以及其与虚拟机的对比,就不介绍了,网上有很多资源可以学习和了解. 本篇文章重点介绍Docker的安装和测试使用. Docker的安装,分为离线安装和在线安装两种 ...

随机推荐

  1. 力扣(LeetCode)最后一个单词的长度 个人题解

    给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 示例: 输入: &quo ...

  2. 《JAVA 程序员面试宝典(第四版)》之传递与引用篇

    废话开场白         这个周末突然很想创业,为什么呢?原因很简单,我周围的同学或者说玩的比较好的朋友都发达了,前一个月和一个两年前还睡在一张床上的朋友,他现在已经在深圳买房买车了,没错是在深圳买 ...

  3. ubantu删除源码安装文件

    1.在安装目录下执行 make uninstall (如安装目录为/opt/software/opencv3.1.0/release) 2.删除系统相关文件 cd /usr sudo find . - ...

  4. python进程概要

    进程 狭义:正在运行的程序实例. 广义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,他是操作系统动态执行的基本单元. python的进程都是并行的. 并行:两个进程同时执行一起走. ...

  5. 2019-9-10:渗透测试,基础学习,nmap扫描命令,php基本语法学习,笔记

    nmap参数-sT,使用tcp全连接的方式 ,扫描过程需要三次握手,建立链接,则说明端口开放,扫描速度慢-sS,使用syn的数据包去检测,接收到ACK说明端口开放-sN,null扫描,发出去的数据包不 ...

  6. Java异常处理只有Try-Catch吗?

    今天,我们将讨论一个非常重要的主题-Java 中的异常处理.尽管有时可能会对此主题进行过多的讨论,但并非每篇文章都包含有用且相关的信息. Java 中最常见的异常处理机制通常与 try-catch 块 ...

  7. xpath选择兄弟节点、返回上一级和选择多个属性

    本文链接:https://blog.csdn.net/ZincZhang/article/details/80248297选择兄弟节点选择前N位的div标签 preceding-sibling::di ...

  8. 深入理解.NET Core的基元(三) - 深入理解runtimeconfig.json

    原文:Deep-dive into .NET Core primitives, part 3: runtimeconfig.json in depth 作者:Nate McMaster 译文:深入理解 ...

  9. Java基础部分(11~20)

    11."=="和 equals 方法究竟有什么区别? (单独把一个东西说清楚,然后再说清楚另一个,这样,它们的区别自然就出来了,混在一起说,则很难说清楚) ==操作符专门用来比较两 ...

  10. 计算机硬件-CPU

    计算机硬件-CPU 冯.诺依曼计算机体系 1.计算机硬件设备由存储器.运算器.控制器.输入设备和输出设备五部分 2.采取二进制形式和指令 3.将程序(数据和指令序列)预先存放在主存储器中,使计算机在工 ...