技术标签: 固定布局 容器 一步一步学习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;
}
程序运行效果图,如下:
一、前端弹出提示框1.&lt;button ID="btn" Text="退出" OnClick="return confirm('你确定要退出吗?');"&gt;&lt;/button&gt;2.&lt;button ID="btn" Text="退出" OnClick="&lt;%#'if(!confirm("你确定要退出吗?"
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
package com.example.demo.exception;/** * @author hongtao.hao * @date 2019/6/27 */public class BusinessException extends RuntimeException { public BusinessException(String message) { ...
基于EM和GMM算法的目标轨迹跟踪和异常行为识别matlab仿真3.仿真结果A10-19
============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...
以管理员身份进入目标目录下进行cmd操作的方法:1、win + X组合键进入移动中心,按A以管理员身份运行Windows PowerShell.2、输入盘名切换所在盘PS C:\WINDOWS\system32> d:PS D:\> 3、输入ls命令查看盘下所含文档PS D:\> ls 目录: D:\Mode LastWriteTi...
很好用的一个企业级B2C商城网站,功能完善,免费开源,二开简单! 下面的文字都是转自码云的,觉得描述的已经很详细了,我也没必要点缀什么。下面介绍的shopxo商城最新版本,也是近期发布的!也感谢shopxo团队的奉献!### 扩展性* 独立模块式开发,完善的注释,易扩展,应用管理。### 安全性* 防止sql注入,代码高安全性。### 轻量级,高性能* 支持多数据库,读写分离,高...
1,QComboBox 可编辑状态setEditable(true);QlineEdit* lineedit = combobox->lineEdit();(2)仅点击右侧按钮响应显示下拉框2, QComboBox 不可编辑状态下(1)setEditable(false);combobox->lineEdit() = null;//注意: 此状态为空指针,调用程序会中断(2)点击整行响应显示下拉框(3)setCurrentText(const QString &te
我现在有一个SQL语句SELECT FAQID,FAQNAME,TYPE,CREATOR,TOQUESTION,SUPERCODEFROM T_KBS_FAQ twhere TYPE = '1'<[AND FAQID = :faqId]><[AND FAQNAME like '%' ||:faqName || '%']><[AND CREATOR = :creator]><[AND SUPERCODE=:superCode]>&l..
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。1.Axis2方式Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。...
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...
英伟达的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...