GTK入门学习:布局容器之固定布局_gtkfixed_Mike江的博客-程序员秘密

技术标签: 固定布局  容器  一步一步学习GTK+  【图形界面编程】  GTK入门学习  

前面我们学习的水平、垂直和表格布局容器,控件会跟着容器大小的变化进行自动适应,而固定布局容器里的控件则不会跟着变化( 则固定不变 )。


固定布局的创建:
GtkWidget *gtk_fixed_new(void);
返回值:固定布局容器指针


固定布局容器添加控件:
void gtk_fixed_put( 

GtkFixed *fixed,

GtkWidget *widget,

gint x,

gint y );

fixed:容纳控件的容器
widget:要添加的控件

x, y:控件摆放位置的起点坐标,如下图:



设置控件的大小( 宽和高 ):
void gtk_widget_set_size_request(

GtkWidget *widget,

gint width,

gint height );

widget:需要设置的控件
width:宽度
height:高度


移动固定布局里控件的位置:
void gtk_fixed_move(   

GtkFixed *fixed,

GtkWidget *widget,

gint x,

gint y);

fixed:固定布局容器
widget:需要移动的控件
x, y: 移动的位置


完整代码如下:

#include <gtk/gtk.h> 

int main( int   argc, char *argv[] ) 
{
	gtk_init (&argc, &argv); 	// 初始化

	GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 	 // 创建窗口 

	GtkWidget *fixed = gtk_fixed_new(); 	//创建一个固定容器
	gtk_container_add(GTK_CONTAINER (window), fixed); // 固定放进窗口

	GtkWidget *button1 = gtk_button_new_with_label("^_^");  // 创建按钮
	gtk_fixed_put(GTK_FIXED(fixed), button1, 0, 0); // 按钮添加到固定布局
	
	GtkWidget *button2 = gtk_button_new_with_label("@_@");  // 创建按钮
	gtk_fixed_put(GTK_FIXED(fixed), button2, 0, 0); // 按钮添加到固定布局
	
	gtk_fixed_move(GTK_FIXED(fixed), button2, 150, 150); // 移动控件的位置
	
	gtk_widget_set_size_request(button2, 100, 50); // 设置控件的大小

	gtk_widget_show_all(window);  // 显示所有控件
	 
	gtk_main();  //进入事件循环 
	 
	return 0; 
} 


程序运行效果图,如下:



源代码下载请点此处。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tennysonsky/article/details/42746621

智能推荐

如何在前端和后台弹出提示框_spring前端弹窗_liu_liuqiu的博客-程序员秘密

一、前端弹出提示框1.&amp;lt;button ID=&quot;btn&quot; Text=&quot;退出&quot; OnClick=&quot;return confirm('你确定要退出吗?');&quot;&amp;gt;&amp;lt;/button&amp;gt;2.&amp;lt;button ID=&quot;btn&quot; Text=&quot;退出&quot; OnClick=&quot;&amp;lt;%#'if(!confirm(&quot;你确定要退出吗?&quot;

Down to the TLP: How PCI express devices talk_the link partner o!_caibaihui的博客-程序员秘密

ForewordWhile I was writing the Xillybus IP core for PCI express, I quickly found out that it’s very difficult to start off: Online resources as well as the official spec bombards you with gory deta

springboot统一异常拦截_这个程序猿可太秀了的博客-程序员秘密

package com.example.demo.exception;/** * @author hongtao.hao * @date 2019/6/27 */public class BusinessException extends RuntimeException { public BusinessException(String message) { ...

【EM+GMM】基于EM和GMM算法的目标轨迹跟踪和异常行为识别matlab仿真_matlab track2_fpga和matlab的博客-程序员秘密

基于EM和GMM算法的目标轨迹跟踪和异常行为识别matlab仿真3.仿真结果A10-19

activemq管理队列的几种方式以及接口_iteye_17762的博客-程序员秘密

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

Windows PowerShell管理员模式下切换目录_windows powershell 切换目录_Kidron_Hou的博客-程序员秘密

以管理员身份进入目标目录下进行cmd操作的方法:1、win + X组合键进入移动中心,按A以管理员身份运行Windows PowerShell.2、输入盘名切换所在盘PS C:\WINDOWS\system32&gt; d:PS D:\&gt; 3、输入ls命令查看盘下所含文档PS D:\&gt; ls 目录: D:\Mode LastWriteTi...

随便推点

【推荐】合适新手学习的一个基于TP5开发的一个开源的B2C商城框架,二次开发简单_既生向阳的博客-程序员秘密

很好用的一个企业级B2C商城网站,功能完善,免费开源,二开简单! 下面的文字都是转自码云的,觉得描述的已经很详细了,我也没必要点缀什么。下面介绍的shopxo商城最新版本,也是近期发布的!也感谢shopxo团队的奉献!### 扩展性* 独立模块式开发,完善的注释,易扩展,应用管理。### 安全性* 防止sql注入,代码高安全性。### 轻量级,高性能* 支持多数据库,读写分离,高...

关于QComboBox_野有蔓草W的博客-程序员秘密

1,QComboBox 可编辑状态setEditable(true);QlineEdit* lineedit = combobox-&gt;lineEdit();(2)仅点击右侧按钮响应显示下拉框2, QComboBox 不可编辑状态下(1)setEditable(false);combobox-&gt;lineEdit() = null;//注意: 此状态为空指针,调用程序会中断(2)点击整行响应显示下拉框(3)setCurrentText(const QString &amp;te

oracle 数据库如何建立索引 如何用索引?_oracle如何创建索引_他山之石女士的博客-程序员秘密

我现在有一个SQL语句SELECT FAQID,FAQNAME,TYPE,CREATOR,TOQUESTION,SUPERCODEFROM T_KBS_FAQ twhere TYPE = '1'&lt;[AND FAQID = :faqId]&gt;&lt;[AND FAQNAME like '%' ||:faqName || '%']&gt;&lt;[AND CREATOR = :creator]&gt;&lt;[AND SUPERCODE=:superCode]&gt;&l..

java开发webservice的几种方式(转载)_langgufu314的博客-程序员秘密

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。1.Axis2方式Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。...

java读取和写入txt文件_weixin_30347335的博客-程序员秘密

package com.yinghuo.testDES;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOut...

英伟达NVIDIA Jetson系列产品刷机(SDK Manager)_sdkmanager_百里工人的博客-程序员秘密

英伟达的TX、NX、AGX可以说是近几年边缘计算中非常牛的产品了。可Linux系统经常会出现安装某软件后系统环境崩掉的情况,接着系统崩掉的机会,记录一下Jetson AGX Xavier的刷机过程。SDK Manager下载:https://developer.nvidia.com/nvidia-sdk-manager安装:sudo apt install ./sdkmanager_1.7.0-8846_amd64.deb...

推荐文章

热门文章

相关标签