表组装示例

news2024/11/24 12:32:54

代码;

#include <gtk-2.0/gtk/gtk.h>
#include <glib-2.0/glib.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
	gtk_init(&argc, &argv);

	GtkWidget *window;
	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window), "表组装演示");
	gtk_widget_show(window);

	GtkWidget *table;
	table = gtk_table_new(3, 4, FALSE);
	gtk_widget_show(table);
	gtk_container_add(GTK_CONTAINER(window), table);
	gtk_table_set_row_spacings(GTK_TABLE(table), 10);
	gtk_table_set_col_spacings(GTK_TABLE(table), 10);

	GtkWidget *lbName;
	lbName = gtk_label_new("姓名");
	gtk_widget_show(lbName);
	gtk_table_attach(GTK_TABLE(table), lbName, 0, 1, 0, 1, (GtkAttachOptions)(
			GTK_FILL), (GtkAttachOptions)(0), 0, 0);
	gtk_widget_set_size_request(lbName, 60, 50);
	GtkWidget *entry1;
	entry1 = gtk_entry_new();
	gtk_widget_show(entry1);
	gtk_table_attach(GTK_TABLE(table), entry1, 1, 4, 0, 1, (GtkAttachOptions)(
			GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0);
	gtk_entry_set_invisible_char(GTK_ENTRY(entry1), 8226);

	GtkWidget *lbGender;
	lbGender = gtk_label_new("性别");
	gtk_widget_show(lbGender);
	gtk_table_attach(GTK_TABLE(table), lbGender, 0, 1, 1, 2,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);

	GSList *radiobutton1_group = NULL;
	GtkWidget *radiobutton1;
	radiobutton1 = gtk_radio_button_new_with_mnemonic(NULL, "男(_M)");
	gtk_widget_show(radiobutton1);
	gtk_table_attach(GTK_TABLE(table), radiobutton1, 1, 2, 1, 2,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);
	gtk_radio_button_set_group(GTK_RADIO_BUTTON(radiobutton1),
			radiobutton1_group);
	radiobutton1_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(
			radiobutton1));
	GtkWidget *radiobutton2;
	radiobutton2 = gtk_radio_button_new_with_mnemonic(NULL, "女(_F)");
	gtk_widget_show(radiobutton2);
	gtk_table_attach(GTK_TABLE(table), radiobutton2, 2, 3, 1, 2,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);
	gtk_radio_button_set_group(GTK_RADIO_BUTTON(radiobutton2),
			radiobutton1_group);
	radiobutton1_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(
			radiobutton2));

	GtkWidget *radiobutton3;
	radiobutton3 = gtk_radio_button_new_with_mnemonic(NULL, "保密(_S)");
	gtk_widget_show(radiobutton3);
	gtk_table_attach(GTK_TABLE(table), radiobutton3, 3, 4, 1, 2,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);
	gtk_radio_button_set_group(GTK_RADIO_BUTTON(radiobutton3),
			radiobutton1_group);
	radiobutton1_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(
			radiobutton3));
	GtkWidget *buttonAP;
	buttonAP = gtk_button_new_from_stock("gtk-apply");
	gtk_widget_show(buttonAP);
	gtk_table_attach(GTK_TABLE(table), buttonAP, 1, 2, 2, 3,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);

	GtkWidget *buttonCE;
	buttonCE = gtk_button_new_from_stock("gtk-cancel");
	gtk_widget_show(buttonCE);
	gtk_table_attach(GTK_TABLE(table), buttonCE, 2, 3, 2, 3,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);

	GtkWidget *buttonOK;
	buttonOK = gtk_button_new_from_stock("gtk-ok");
	gtk_widget_show(buttonOK);
	gtk_table_attach(GTK_TABLE(table), buttonOK, 3, 4, 2, 3,
			(GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);

	g_signal_connect(G_OBJECT(window), "delete_event",
			G_CALLBACK(gtk_main_quit), NULL);
	gtk_main();
	return 0;
}

编译运行:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1847201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战18:基于tkinter+jupyter notebook开发的情感分析系统

项目演示: 完整代码: import pandas as pd import numpy as np from collections import Counter import re import jieba from tqdm import tqdm from sklearn.metrics import roc_curve, auc import joblib import gensim from sklearn.svm import SVC from gensim.mode…

34.构建核心注入代码

上一个内容&#xff1a;33.获取入口点 以 33.获取入口点 它的代码为基础进行修改 实现的功能是把LoadLibrary函数注入到目标进程实现加载我们的模块。LoadLibrary只有有程序使用过了它的代码就会加载到内存中&#xff08;因为动态链接库是内存加载&#xff09;就是a程序要用L…

基于JSP技术的固定资产管理系统

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPServlet 工具&#xff1a;MyEclipse、Tomcat 系统展示 首页 注册界面…

全排列(C++)

2024年6月16日1&#xff1a;48&#xff0c;正式开启每日一题~ 题目要求&#xff1a;给定正整数n&#xff08;n≥1&#xff09;&#xff0c;给出1~n的全排列&#xff0c;例如&#xff0c;当n3时全排列是{{1&#xff0c;2&#xff0c;3}&#xff0c;{1&#xff0c;3&#xff0c;…

数字化物资管理系统的未来:RFID技术的创新应用

在信息化和智能化不断发展的背景下&#xff0c;物资管理系统的数字化转型已成为各行各业关注的焦点。RFID技术作为一种先进的物联网技术&#xff0c;通过全面数字化实现物资信息的实时追踪和高效管理&#xff0c;为企业的物资管理提供了强有力的支持。 首先&#xff0c;RFID技…

docker将容器打包提交为镜像,再打包成tar包

将容器打包成镜像可以通过以下步骤来实现。这里以 Docker 为例&#xff0c;假设你已经安装了 Docker 并且有一个正在运行的容器。 1. 找到正在运行的容器 首先&#xff0c;你需要找到你想要打包成镜像的容器的 ID 或者名字。可以使用以下命令查看所有正在运行的容器&#xff…

SQLite扩展插件终极集合

作为一个嵌入式数据库引擎&#xff0c;SQLite 与其他数据库管理系统相比&#xff0c;缺少了一些功能。不过 SQLite 提供了一个扩展机制&#xff0c;因此我们可以在网络上找到大量的 SQLite 插件。 今天我们介绍的这个插件叫做 sqlean&#xff0c;它打包了许多流行的 SQLite 扩…

Go微服务: redis分布式锁保证数据原子操作的一致性

概述 随着云计算和大数据技术的飞速发展&#xff0c;分布式系统已经成为现代IT架构的重要组成部分在分布式系统中&#xff0c;数据的一致性是一个至关重要的挑战&#xff0c;特别是在并发访问和修改共享资源的场景下分布式锁是一种跨进程、跨机器节点的互斥锁&#xff0c;用于…

Python web 开发 flask 实践

1、前言 前文已经介绍了很多关于 python 的算法和脚本的写法&#xff0c;在本文将开启python的 web 的开发&#xff0c;和java 类似的&#xff0c;对于 web 开发也需要引入框架&#xff0c;对于 python 的 web 开发来说常见的有 flask 和 django 两种&#xff0c;在本文中将要…

Comparison method violates its general contract! 神奇的报错

发生情况 定位到问题代码如下&#xff08;脱敏处理过后&#xff09;&#xff0c;意思是集合排序&#xff0c;如果第一个元素大于第二个元素&#xff0c;比较结果返回1&#xff0c;否则返回-1&#xff0c;这里粗略的认为小于和等于是一样的结果 List<Integer> list Arr…

【Android14 ShellTransitions】(六)SyncGroup完成

这一节的内容在WMCore中&#xff0c;回想我们的场景&#xff0c;是在Launcher启动某一个App&#xff0c;那么参与动画的就是该App对应Task&#xff08;OPEN&#xff09;&#xff0c;以及Launcher App对应的Task&#xff08;TO_BACK&#xff09;。在确定了动画的参与者后&#x…

C#.net6.0语言+B/S架构+前后端分离 手术麻醉信息管理系统源码

C#.net6.0语言&#xff0b;B/S架构前后端分离 手术麻醉信息管理系统源码 什么是手术麻醉信息管理系统 满足医院等级评级需求 满足电子病历评级需求 满足科室需求 术前 1、患者术前评估/诊断 2、术前讨论制定手术方案 3、手术准备 4、术前准备 术中 1、送手术室 2、麻…

openlayers 轨迹回放(历史轨迹),实时轨迹

本篇介绍一下使用openlayers轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;实时轨迹 1 需求 轨迹回放&#xff08;历史轨迹&#xff09;实时轨迹 2 分析 主要是利用定时器&#xff0c;不断添加feature 轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;一般是…

Ubuntu安装qemu-guest-agent

系列文章目录 Ubuntu-24.04-live-server-amd64安装界面中文版 Ubuntu-24.04-live-server-amd64启用ssh Ubuntu乌班图安装VIM文本编辑器工具 文章目录 系列文章目录前言一、安装二、启用服务三、效果总结 前言 QEMU Guest Agent&#xff08;简称QEMU GA或QGA&#xff09;在虚拟…

什么是NLP-自然语言处理

什么是NLP-自然语言处理 什么是NLP开通NLP新建项目创建模型 什么是NLP NPL是面向算法小白用户的行业自适应标注、训练和服务平台。该产品支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、短文本匹配、商品评价解析等 NLP 定制化算法能力&#xff0c;用户无需拥…

御龙掘宝挂机零撸修仙类游戏定制开发源码部署

随着移动游戏的普及&#xff0c;御龙掘宝挂机零撸修仙类游戏定制开发源码部署应运而生。这款游戏结合了传统的修仙元素、挂机游戏的核心玩法以及零撸掘金的商业模式&#xff0c;为玩家提供了一个全新的游戏体验。本文将探讨御龙掘宝挂机零撸修仙类游戏定制开发源码部署的核心技…

linux 安装sftp及使用sftp工具类上传和下载

一、centos7 安装sftp 1.安装 OpenSSH 服务&#xff1a; sudo yum install openssh-server2.启动 SSH 服务&#xff0c;并设置为开机启动&#xff1a; sudo systemctl start sshd sudo systemctl enable sshd3.创建一个新用户&#xff0c;用于SFTP连接&#xff08;替换your_…

Linux:多线程中的互斥与同步

多线程 线程互斥互斥锁互斥锁实现的原理封装原生线程库封装互斥锁 死锁避免死锁的四种方法 线程同步条件变量 线程互斥 在多线程中&#xff0c;如果存在有一个全局变量&#xff0c;那么这个全局变量会被所有执行流所共享。但是&#xff0c;资源共享就会存在一种问题&#xff1…

Ilya出走记:SSI的超级安全革命

图片&#xff5c;OpenAI官网 ©自象限原创 作者丨罗辑、程心 和OpenAI分道扬镳以后&#xff0c;Ilya“神秘而伟大”的事业终于揭开了面纱。 6月20日&#xff0c;前OpenAI核心创始人 Ilya Stuskever&#xff0c;在官宣离职一个月后&#xff0c;Ilya在社交媒体平台公开了…

opencascade AIS_InteractiveContext源码学习2

AIS_InteractiveContext 前言 交互上下文&#xff08;Interactive Context&#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是&#xff0c;对于已经被交互上下文识别的交互对象&#xff0c;必须使用上下文方法进行…