IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 第92页的gtk+编程例子——框架 -> 正文阅读

[游戏开发]第92页的gtk+编程例子——框架

以下gtk+编程例子是来自书籍《实用技术:开发Linux应用——用GTK+和GDK开发Linux图形用户界面应用》第92页的内容——框架

设置框架标签居中的坐标是0.5,0,这个知识没有太大难度,容易理解
从网上搜索关于中国水电站的图片统一修改成400X300的格式
gimp——文件——打开——找到hydroelectric01.jpg
gimp——图像——缩放图像——高度输入300后马上回车,注意是高度高度——缩放
gimp——图像——画布大小——单击宽度输入框右旁边的圆形针图标让它上下开裂,意思是不锁定宽高的比例——宽度输入400后马上回车,注意是宽度宽度——单击按住中间图片左右拖动,选取合适满意的部分——改变大小
gimp——图像——平整图像
gimp——文件——保存——保存
注意是先缩放图像改变高度,再画布大小改变宽度,最后平整图像,一定要按着这个顺序修改

在openSUSE-Leap-15.3-DVD-x86_64的gnome3.34.7桌面环境下编译的,其中pkg-config --cflags --libs gtk±3.0两边有反引号括起来的
ruhong@localhost:~/gtk> gcc page92.c -o page92 pkg-config --cflags --libs gtk±3.0
ruhong@localhost:~/gtk> ./page92

/* the example on page 92 */

#include <gtk/gtk.h>
/* 准备材料,自定义函数  */
	/*  comments注释  */

/* 程序主体 */
int main( int argc, char *argv[] )
{
	GtkWidget *window;
	/* 声明变量window为构件gtkwidget */
	GtkWidget *hbox;
	GtkWidget *frame1;
	GtkWidget *image1;
	GtkWidget *frame2;
	GtkWidget *image2;
	GtkWidget *frame3;
	GtkWidget *image3;
	GtkWidget *frame4;
	GtkWidget *image4;
	GtkWidget *frame5;
	GtkWidget *image5;

	gtk_init (&argc, &argv);
	/* 初始化gtk */

	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	/*  创建顶级窗口 */
	gtk_window_set_title (GTK_WINDOW (window), "水电站hydroelectric  station");
	/*  为窗口顶部加上标题为水电站hydroelectric  station  */
	g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
	/*  为窗口加上动作,当收到destroy信号,就启动gtk_main_quit事件,gtk_main_quit就是鼠标单击窗口右上角的关闭按钮就终止程序  */
	gtk_container_set_border_width (GTK_CONTAINER (window), 50);
	/*  简单的理解是将窗口变成容器,可以装入其它构件,构件边缘与窗口边缘的距离为50像数  */

	hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	/*  创建组合框  */
	gtk_container_add (GTK_CONTAINER (window), hbox);
	/*  将组合框装入窗口容器  */
	
	frame1 = gtk_frame_new ("向家坝水电站");
	/*  创建框架frame1带标签名为向家坝水电站  */
	gtk_frame_set_label_align (GTK_FRAME (frame1), 0, 0);
	/*  设置框架的标签位置在左上角是0,0   中间是0.5,0   右上角是1,0  */
	gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
	/*  设置框架的立体效果为下沉  */
	image1 = gtk_image_new_from_file("./hydroelectric01.jpeg");
	/*  从文件中读取图片,page92.c与hydroelectric01.jpeg要在同一个文件夹,./表示在当前文件夹  */
	gtk_container_add (GTK_CONTAINER (frame1), image1);
	/*  将图片装入框架容器中,框架本身就是容器  */
	gtk_box_pack_start (GTK_BOX (hbox), frame1, FALSE, FALSE, 10);
	/*  将框架装入组合框容器中,数字10表示构件frame1的边缘与hbox的边缘为10像数  */
	
	frame2 = gtk_frame_new ("乌东德水电站");
	gtk_frame_set_label_align (GTK_FRAME (frame2), 0, 0);
	gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_OUT);
	/*  设置框架的立体效果为上浮  */
	image2 = gtk_image_new_from_file("./hydroelectric02.jpeg");
	gtk_container_add (GTK_CONTAINER (frame2), image2);
	gtk_box_pack_start (GTK_BOX (hbox), frame2, FALSE, FALSE, 10);
	
	frame3 = gtk_frame_new ("白鹤滩水电站");
	gtk_frame_set_label_align (GTK_FRAME (frame3), 0.5, 0);
	gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_IN);
	image3 = gtk_image_new_from_file("./hydroelectric03.jpeg");
	gtk_container_add (GTK_CONTAINER (frame3), image3);
	gtk_box_pack_start (GTK_BOX (hbox), frame3, FALSE, FALSE, 10);

	frame4 = gtk_frame_new ("溪洛渡水电站");
	gtk_frame_set_label_align (GTK_FRAME (frame4), 1, 0);
	gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_OUT);
	image4 = gtk_image_new_from_file("./hydroelectric04.jpeg");
	gtk_container_add (GTK_CONTAINER (frame4), image4);
	gtk_box_pack_start (GTK_BOX (hbox), frame4, FALSE, FALSE, 10);

	frame5 = gtk_frame_new ("三峡水电站");
	gtk_frame_set_label_align (GTK_FRAME (frame5), 1, 0);
	gtk_frame_set_shadow_type (GTK_FRAME (frame5), GTK_SHADOW_NONE);
	image5 = gtk_image_new_from_file("./hydroelectric05.jpeg");
	gtk_container_add (GTK_CONTAINER (frame5), image5);
	gtk_box_pack_start (GTK_BOX (hbox), frame5, FALSE, FALSE, 10);

	gtk_widget_show_all (window);
	/*  显示构件窗口包括所有构件  */
	gtk_main ();
	/*  进入主循环,等待信号(鼠标键盘)输入  */
	return 0;
}

效果图如下
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:53:21  更:2022-03-16 22:53:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 17:41:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码