欢迎光临散文网 会员登陆 & 注册

gtk+ 实现电话程序界面(1)

2023-01-07 16:52 作者:秋名山西  | 我要投稿

本项目实现的最终目标是:实现一个视频电话程序界面,能够实现拨号、建立通讯录以及记录通话记录等功能。流程图如下:

电话程序界面流程图

以下代码实现的是程序启动界面,结果如下

程序运行结果

creat_pixbuf:用于获取从文件中获取到GdkPixbuf类型的图像数据,便于我们使用,例如修改图片大小等

set_background:将传入的图片设置为本窗口的背景

总结:

今天主要的收获

(1)学习到了设置窗口背景的方法,不能单纯地使用图片显示控件将图片显示在窗口中,不然会导致后续的控件没法添加,因为图片显示控件不是一个容器。而是应该set_background函数中的那样,先打开app的绘图权限,然后发出窗口绘制信号,设置好图片的参数后,调用gdk_window_set_back_pixmap函数完成设置。

(2)界面的布局应当事先设计好布局,根据布局情况选择合适的布局容器。

(3)使用表格布局容器,添加到其中的控件的尺寸默认由窗口管理器控制,如果要认为进行控制,可以先将按键添加到fixed(固定布局容器)中,调用gtk_widget_set_size_request设置案件大小,然后再将fixed添加到表格布局容器的对应位置。

(4)使用fixed时,需要注意,

其一,fixed的大小不会随着窗口的变化变化,如果不能接受这一缺点,尽量避免使用fixed。其二,将控件添加到fixed时,后面的坐标是相对于fixed的父组件而言的,例如我们将fixed添加到table中时,坐标位置的起点(fixed的左上角顶点)应当是table某个表格的左上角顶点坐标,坐标的值都是以该点作为原点。其三,按键的大小也不应该大于fixed起点坐标与fixed所在表项尺寸的值的绝对值。

gtk+ 实现电话程序界面(1)的评论 (共 条)

分享到微博请遵守国家法律