当前位置:网站首页>GTK在drawable区域绘图
GTK在drawable区域绘图
2022-07-29 21:24:00 【百口可乐__】
gtk不使用cairo库的绘图方式:
#include <gtk/gtk.h>
static gboolean on_expose(GtkWidget *drawArea,GdkEventExpose *event,gpointer data)
{
GdkGC *gc_0, *gc_1, *gc_2;
GdkColor color;
gc_0 = gdk_gc_new(drawArea->window);
color.red = 0;
color.green = 30000;
color.blue = 0;
gdk_gc_set_rgb_fg_color( gc_0, &color );
gc_1= gdk_gc_new( drawArea->window );
color.red = 65535;
color.green = 0;
color.blue = 65535;
gdk_gc_set_rgb_fg_color( gc_1, &color );
gc_2= gdk_gc_new( drawArea->window );
color.red = 0;
color.green = 65522;
color.blue = 33333;
gdk_gc_set_rgb_fg_color( gc_2, &color );
//画矩形
gdk_draw_rectangle( drawArea->window,gc_0,TRUE,5, 5, 100, 100 );
//画圆弧
gdk_draw_arc( drawArea->window,gc_1,FALSE, 150, 50, 100, 100, 0, 64*180);
//写字
PangoLayout *layout = gtk_widget_create_pango_layout( drawArea, "hello world!" );
PangoFontDescription *fontdesc = pango_font_description_from_string( "Comic Sans 24" );
pango_layout_set_font_description( layout, fontdesc );
gdk_draw_layout( drawArea->window,gc_2,50, 150, layout );
//释放资源
pango_font_description_free( fontdesc );
g_object_unref( layout );
g_object_unref( G_OBJECT(gc_0) );
g_object_unref( G_OBJECT(gc_1) );
return TRUE;
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *drawArea;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Center");
gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
drawArea = gtk_drawing_area_new();
gtk_widget_set_size_request(drawArea, 300, 200);
gtk_container_add(GTK_CONTAINER(window), drawArea);
g_signal_connect(drawArea, "expose_event",G_CALLBACK(on_expose), NULL);
g_signal_connect_swapped(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
效果:
参考:
gtk画矩形
边栏推荐
- 刚重装的win7系统不能上网(深度系统安装步骤)
- 普洛斯荣获两项“数据中心绿色等级评估”5A级认证
- GBASE 8s 自定义存储过程和函数使用
- install mysql using script
- 容器网络硬核技术内幕 (24) 知微知彰,知柔知刚 (上)
- 网络通信编程基础,BIO,NIO
- Cobaltstrike and BurpSuite desktop shortcut configuration
- TCP协议详解
- GBASE 8s 数据库的逻辑日志备份
- 【点云】M3DeTR: Multi-representation, Multi-scale, Mutual-relation 3D Object Detection with Transformers
猜你喜欢

【Verilog】Verilog设计进阶
![LeetCode 593 Valid Squares [Math] HERODING's Road to LeetCode](/img/c2/34624c9c7693ba40d0b3724c0db611.png)
LeetCode 593 Valid Squares [Math] HERODING's Road to LeetCode

Numpy数组处理(二)

新库上线 | CnOpenData租赁和商务服务业工商注册企业基本信息数据

南信大提出TIPCB,一个简单但有效的用于基于文本的人员搜索的基于部分的卷积baseline

《张卫国的夏天》欢乐来袭,黄磊、刘奕君携手演绎“冤种”兄弟

Cobaltstrike and BurpSuite desktop shortcut configuration

结合布林线理解现货白银走势图的方法

Panorama Tutorial丨How to shoot sunrise and sunset scenes in VR panoramic shooting?

使用脚本安装mysql
随机推荐
HMS Core audio editing service audio source separation and spatial audio rendering, helping to quickly enter the world of 3D audio
品牌广告投放平台的中台化应用与实践
378. The Kth Smallest Element in an Ordered Matrix
GBASE 8s 数据库的智能大对象备份
iNFTnews | 福布斯的Web3探索
ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
24-hour London gold chart analysis
linux install redis using script
亚马逊登录参数metadata1,encryptedPwd逆向分析
GBASE 8s 数据库唯一索引
mdnice-test
刚重装的win7系统不能上网(深度系统安装步骤)
GBASE 8s 如何估算索引使用多少空间
小程序预览pdf
解决报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
新库上线 | CnOpenData租赁和商务服务业工商注册企业基本信息数据
SQL教程之性能不仅仅是查询
LeetCode--single linked list--146.LRU cache
解释器模式
针对自动识别大麦网滑块验证码,提出解决方案,并进行分析、总结