GTK进阶学习:改变控件字体大小
来源:互联网 发布:手机qq数据越来越大 编辑:程序博客网 时间:2024/04/28 08:55
改变控件字体大小:
- #include <gtk/gtk.h>
- /* 功能: 设置控件字体大小
- * widget: 需要改变字体的控件
- * size: 字体大小
- * is_button: TRUE代表控件为按钮,FALSE为其它控件
- */
- static void set_widget_font_size(GtkWidget *widget, int size, gboolean is_button)
- {
- GtkWidget *labelChild;
- PangoFontDescription *font;
- gint fontSize = size;
- font = pango_font_description_from_string("Sans"); //"Sans"字体名
- pango_font_description_set_size(font, fontSize*PANGO_SCALE);//设置字体大小
- if(is_button){
- labelChild = gtk_bin_get_child(GTK_BIN(widget));//取出GtkButton里的label
- }else{
- labelChild = widget;
- }
- //设置label的字体,这样这个GtkButton上面显示的字体就变了
- gtk_widget_modify_font(GTK_WIDGET(labelChild), font);
- pango_font_description_free(font);
- }
- int main( int argc, char *argv[])
- {
- gtk_init(&argc, &argv);
- //主窗口操作
- GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(window), "改变控件字体大小");
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
- gtk_widget_set_size_request(window, 500, 450);
- GtkWidget *vbox = gtk_vbox_new(TRUE, 5); // 创建垂直布局
- gtk_container_add(GTK_CONTAINER(window), vbox); // 把布局放在窗口里
- // 改变标签字体大小,参数为 FALSE
- GtkWidget *label = gtk_label_new("I am a label"); // 标签
- set_widget_font_size(label, 50, FALSE); // 设置标签字体大小
- gtk_container_add(GTK_CONTAINER(vbox), label);
- // 改变按钮字体大小,参数为 TRUE
- GtkWidget *button = gtk_button_new_with_label("I am a button");
- set_widget_font_size(button, 50, TRUE); // 改变按钮字体大小
- gtk_container_add(GTK_CONTAINER(vbox), button);
- gtk_widget_show_all(window); // 显示所有部件
- gtk_main();
- return 0;
- }
源代码下载请点此处。
5 0
- GTK进阶学习:改变控件字体大小
- GTK进阶学习:改变控件字体大小
- GTK进阶学习:属性改变事件
- GTK进阶学习:属性改变事件
- gtk改变button的字体大小
- gtk指定控件字体大小--PangoFontDescription
- MFC 改变控件字体大小
- MFC 改变控件字体大小
- MFC 改变控件字体大小
- MFC 改变控件字体大小
- ext 控件字体大小改变
- MFC 改变控件字体大小
- GTK进阶学习:定时器
- GTK进阶学习:定时器
- 如何改变WebBrower控件字体大小
- mfc listcontrol控件改变字体大小
- GTK进阶学习:鼠标事件
- GTK进阶学习:键盘事件
- CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)
- Gradlle 全解析
- 浅谈C#中的双缓冲
- 剖析Disruptor:为什么会这么快?(一)锁的缺点
- arm-linux-androideabi-**工具
- GTK进阶学习:改变控件字体大小
- Ubuntu14.04系统下,如何将.iso文件刻录到CD/DVD光盘
- C# GDI+双缓冲技术
- 数据结构——二叉树的链式存储操作集合
- hdu 3079(Vowel Counting)
- (5) SQL 语句 - 校对规则
- 【转】 C++ Primer 学习笔记_20_类与数据抽象(6)_深拷贝与浅拷贝、空类与空数组
- JAVA中的equals(一)
- OC特有语法—Protocol