Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52037
  • 博文数量: 22
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-22 16:48
文章分类
文章存档

2009年(2)

2008年(20)

我的朋友

分类: C/C++

2008-12-23 18:17:25

    前边已经说过用glade设计界面然后动态装载,接下来再来看看怎么改变程序的皮肤(主题)

    首先从下载喜欢的主题,从压缩包里提取gtk-2.0文件夹让它和我们下边代码生成的可执行文件放在同一个目录下,这里我下载的的

    然后用glade设计界面,命名为main.glade,一会让它和我们下边代码生成的可执行程序放在同一个目录下边

    然后开始写代码如下:

//main.cc
#include
#include

int main(int argc, char *argv[])
{
    Gtk::Main kit(argc,argv);
   
    Gtk::Window *pWnd;
  
    gtk_rc_parse("E:\\theme-viewer\\themes\\gtk-2.0\\gtkrc");  

    Glib::RefPtr refXml;
    try
    {
        refXml = Gnome::Glade::Xml::create("main.glade");
    }
    catch(const Gnome::Glade::XmlError& ex)
    {
        Gtk::MessageDialog dialog("Load glade file failed!", false,       \
                                  Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
        dialog.run();
     
        return 1;
    }
   
    refXml->get_widget("main", pWnd);
    if(pWnd)
    {
        kit.run(*pWnd);
        delete pWnd;
        pWnd = 0;
    }

    return 0;
}
编译链接,然后把这三样东东按我们原订的位置放好,运行,效果如下:

这是我写的一个小程序用来测试主题
http://blogimg.chinaunix.net/blog/upfile2/081223182134.zip
用法:把主题包解压到themes目录下,然后在config.theme中第一行写上主题名字,程序还可以列出可用的主题名

注意:
gtk_rc_parse()只在创建窗口以前使用才有效


我日志虽然我写的是Gtkmm的迷人不过……

阅读(909) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

on-the-fly2008-12-25 17:06:02

非常感谢!

chinaunix网友2008-12-25 00:13:38

这个我知道,我是说没有连接树枝的虚线,是假树。

chinaunix网友2008-12-24 15:05:50

Gtkmm看起来很优美,不知道在Windows下用起来怎么样,没找到windows-style的树形控件.