LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 696|回复: 1

【求助】 在 GTK+ 中如何设置控件的字体样式?

[复制链接]
发表于 2003-4-29 11:00:52 | 显示全部楼层 |阅读模式

  1. #include <gtk/gtk.h>
  2. void hello( GtkWidget *widget, gpointer data )
  3. {
  4.     g_print( "Hello World\n" );
  5. }
  6. gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data )
  7. {
  8.     g_print( "delete event occurred\n" );
  9.     return FALSE;
  10. }
  11. void destroy( GtkWidget *widget, gpointer data )
  12. {
  13.     gtk_main_quit();
  14. }
  15. int main( int argc, char *argv[] )
  16. {
  17.     GtkWidget  *window;
  18.     GtkWidget  *button;

  19.     gtk_init( &argc, &argv );

  20.     window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
  21.     gtk_window_set_title( GTK_WINDOW(window), g_locale_to_utf8("标题", 4, NULL, NULL, NULL) );
  22.     gtk_container_set_border_width( GTK_CONTAINER(window), 10 );

  23.     gtk_signal_connect( GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event), NULL );
  24.     gtk_signal_connect( GTK_OBJECT(window), "destroy",      GTK_SIGNAL_FUNC(destroy),      NULL );

  25.     button = gtk_button_new_with_label( g_locale_to_utf8("按钮!hello!", 12, NULL, NULL, NULL) );
  26.     gtk_signal_connect( GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(hello), NULL );
  27.     gtk_signal_connect_object( GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window) );
  28.     gtk_widget_set_sensitive( button, TRUE );

  29.     {
  30.         GdkFont    *font  = gdk_fontset_load( "stsong" );
  31.         GtkStyle   *style = gtk_style_new();
  32.         gtk_style_set_font  ( style,  font  );
  33.         gtk_widget_set_style( button, style );
  34.         /***********************************************************/
  35.         /* 问题就在这,怎么设置 button 的字体呢?stsong 就是宋体吧 */
  36.         /* 上面些设置执行时根本毫无反映,button上还是显示一堆方块  */
  37.         /* 还有,我不想使用 gettext() 国际化的方法...       谢谢! */
  38.         /***********************************************************/
  39.     }

  40.     gtk_container_add( GTK_CONTAINER(window), button );
  41.     gtk_widget_show(button);
  42.     gtk_widget_show(window);

  43.     gtk_main();
  44.     return 0;
  45. }
复制代码


据查看,默认情况下控件的字体设置为 "sans",
可这种字体只能显示 ASCII码,
所以中文才会出现乱码,请问如何更改字体设置?
 楼主| 发表于 2003-4-29 19:59:35 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表