前言
领导让做个类似平板触摸的 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 * Windows;
- // 初始化整个 GTK + 程序, 是每一个 GTK + 程序必不可少的部分
- gtk_init(&argc,&argv);
- // 创建一个窗口
- Windows = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- // 设置串口的标题
- gtk_window_set_title(GTK_WINDOW(Windows),"Test 窗口");
- // 为窗口注册回调函数
- g_signal_connect(G_OBJECT(Windows),"destroy",G_CALLBACK(gtk_main_quit),NULL);
- // 显示窗口
- gtk_widget_show_all(Windows);
- // 所有的 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
如有任何问题, 请评论或者私信, 非常感谢
来源: http://www.bubuko.com/infodetail-3337528.html