• 订阅

    抓虾
    google reader
    bloglines
    鲜果
  • 分类目录

  • 功能

  • 标签

    blog evmaker festival Fvwm gloobus GMChess gmitter GMLive gtkmm iCalk iTalk M8 ppstream program sdcv soft talkmm twitter vim 不折腾 中国象棋 价值 健身 北漂 回忆 小说 幼稚的思想 影评 感想 手机 推倒 旅游 朝花夕拾 生活 电影评论 社会 社会事件 笔记本 网络 美剧 言论自由 过年 随想 黑客 黑客小说
  • « | Main | »

    Gtkmm中关于窗口的关闭按钮问题

    By lerosua | 三月 25, 2009

    之前用Gtkmm写icalk时创造了一个关于窗口,但它有个bug,关闭按钮没响应。昨天为GMChess创建关于窗口的时候再次遇到这个bug,这次我认真地搜索了一下,终于发现问题所在。
    之前我都是创建完about窗口后,再调用show函数显示。
    其实是应该调用run函数。我忘记了about窗口其实是dialog类,平时对话框之类不是要调用run然后观其返回值嘛,原来我无形中把about窗口当成window类了。发现有不少人有这错觉哩。而gnome-osd-properties的关于窗口也有关不掉的bug,哈哈哈。
    下面给一个菜单调用about窗口的实例源码,

    void MainWindow::on_menu_about()
    {
    	static Gtk::AboutDialog*  about(0);
    	if(about == 0){
    		std::vector<Glib::ustring> authors;
    		authors.push_back("lerosua ");
    		authors.push_back("wind");
    		about = new Gtk::AboutDialog ;
    		Glib::RefPtr<Gdk::Pixbuf> logo  = Gdk::Pixbuf::create_from_file(DATA_DIR"/gmchess.png");
    		about->set_logo(logo);
    		about->set_program_name("GMChess");
    		about->set_version(version);
    		about->set_website("http://lerosua.org");
    		about->set_copyright("Copyright (c) 2009 lerosua");
    		about->set_comments(_("GMChess is chinese chess game write by gtkmm"));
    		about->set_authors(authors);
    		about->set_license (_("This program is licenced under GNU General Public Licence (GPL) version 2."));
    		about->set_translator_credits("lerosua");
     
     
    	}
    	//about->show();
    	//about->raise();
    	about->run();
    	about->hide();
     
    }

    Topics: gtkmm | No Comments »

    Comments