LinuxSir.cn,穿越时空的Linuxsir!

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

为什么用glade 生成的filechooser的代码是从Gtk::Label里inherite 过来的?

[复制链接]
发表于 2004-11-30 18:06:29 | 显示全部楼层 |阅读模式
为什么用glade 生成的filechooser的代码是从Gtk:abel里inherite 过来的????
下面是生成的代码!
class FileChooserWindow_glade : public Gtk:abel
{  
public:
        
        class Gtk:abel *FileChooserWindow;
        class Gtk::Button *button36;
        class Gtk::Button *button37;
        class Gtk::HButtonBox *dialog_action_area2;
        class Gtk::VBox *dialog_vbox2;
protected:
        
        FileChooserWindow_glade(GlademmData *gmm_data);
        
        ~FileChooserWindow_glade();
};
发表于 2004-11-30 18:37:00 | 显示全部楼层
你用的gtk怎么是C++的,是gtkmm吗?

gtk的有些控件可扩展性不太好,不适合作基类(比如使得子类不能按照自己的意愿来安排鼠标键盘的响应函数),相对来说用label作基类更自由一些。我想设计者是在充分利用已有代码和实现新功能之间做了平衡后作出这样的选择。不一定要选择表面上功能类似的控件来作父类。
 楼主| 发表于 2004-12-1 13:38:09 | 显示全部楼层
对我是用gtkmm的,真是用这个gtkmm写东西了,感觉不是太好, 有些东西封装得不是很严谨。
可是如果让filechooser从label 继承过来的话,在程 序执行的时候filechooser就显示不出来了,而被显示成为一个label 了。
因为你看在这一行
class Gtk:abel *FileChooserWindow;
可是在gtkmm里面有Gtk::FileSelection这个Class呀。
我的意思是说filechooser 可以从label 继承过来,可是为什么在声命的时候完全可以变成
class Gtk::FileChooser *FilCHooserWindow
呀,这样的话filechooser 不仅可以有label有的属性,而且有filechooser正常的界面....
 楼主| 发表于 2004-12-1 13:40:15 | 显示全部楼层
我倒觉得这更像是一个bug...

刚开始写gtk的程序,被搞得一头雾水,还不如用gtk,然自己来实现类的封装。这样不是更好?!
发表于 2004-12-2 09:25:33 | 显示全部楼层
我没用过gtkmm,不清楚具体状况。

gtk虽是C写的,但完全是面向对象的风格,结构上和gtkmm应该差别不大,只是类的具体编码上麻烦一点。你可以去参考一下gtk中的相应控件是怎样实现的,实际上也是类的继承,只是和C++的写法不同。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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