草庐IT

c++ - 销毁 gtkmm 消息对话框?

我使用的是gtkmm3.0.1,在创建Gtk::MessageDialog对象时我没有看到在用户单击按钮后销毁对话框的选项。我发现破坏消息对话框的唯一方法是在辅助函数中调用它,但我觉得这有可能被避免。文档没有提到销毁它的方法,只提到由用户销毁它。这是我的代码:#include#includeusingnamespacestd;intmain(intargc,char*argv[]){Gtk::Mainkit(argc,argv);Gtk::Windowclient;Gtk::MessageDialogdialog("Info",false,Gtk::MESSAGE_QUESTION,G

c++ - 无法获取小部件的高度/宽度 - gtkmm

我正在使用gtkmm编写应用程序。我写了一个简单的小部件类,我只想在某些情况下显示在应用程序的主窗口中。否则,我希望标签“已禁用”可见。为了实现这一点,我将小部件和标签打包到一个VBox中,然后我show()和hide()它们以便交换它们。但是,自定义小部件比标签大得多,所以我需要稍微调整一下标签。我知道我可以使用label.set_size_request(x,y),当我手动输入尺寸时它会起作用。但我知道,小部件的大小可能会有所不同,具体取决于使用的Gtk主题等。我想设置标签与小部件的大小完全相同*。但是,使用widget.get_height()*不起作用-它始终返回1。也许线索是

c++ - 无法获取小部件的高度/宽度 - gtkmm

我正在使用gtkmm编写应用程序。我写了一个简单的小部件类,我只想在某些情况下显示在应用程序的主窗口中。否则,我希望标签“已禁用”可见。为了实现这一点,我将小部件和标签打包到一个VBox中,然后我show()和hide()它们以便交换它们。但是,自定义小部件比标签大得多,所以我需要稍微调整一下标签。我知道我可以使用label.set_size_request(x,y),当我手动输入尺寸时它会起作用。但我知道,小部件的大小可能会有所不同,具体取决于使用的Gtk主题等。我想设置标签与小部件的大小完全相同*。但是,使用widget.get_height()*不起作用-它始终返回1。也许线索是

c++ - gtkmm/c++ 第一个 hello world 示例泄漏内存

我正在尝试学习gtkmm,并决定暂时尝试gtkmm2.4,因为要让3.0在Debian上运行似乎非常困难。无论如何,我正在尝试的示例是这里的示例:http://developer.gnome.org/gtkmm-tutorial/2.24/sec-helloworld.html.en.它编译得很好,运行也很好,但是当我关闭它时,valgrind报告了很多泄漏,类似于此(单击一次按钮后):==4254==Memcheck,amemoryerrordetector==4254==Copyright(C)2002-2010,andGNUGPL'd,byJulianSewardetal.==4

c++ - gtkmm/c++ 第一个 hello world 示例泄漏内存

我正在尝试学习gtkmm,并决定暂时尝试gtkmm2.4,因为要让3.0在Debian上运行似乎非常困难。无论如何,我正在尝试的示例是这里的示例:http://developer.gnome.org/gtkmm-tutorial/2.24/sec-helloworld.html.en.它编译得很好,运行也很好,但是当我关闭它时,valgrind报告了很多泄漏,类似于此(单击一次按钮后):==4254==Memcheck,amemoryerrordetector==4254==Copyright(C)2002-2010,andGNUGPL'd,byJulianSewardetal.==4

c++ - 编译gtkmm的问题

操作系统:Fedora14编译器:g++(GCC)4.5.120100924(RedHat4.5.1-4)我通过yum从存储库安装了gtkmm24-devel。为了确保安装按计划进行,我决定尝试页面上的一个示例。#includeintmain(intargc,char*argv[]){Gtk::Mainkit(argc,argv);Gtk::Windowwindow;Gtk::Main::run(window);return0;}我运行了这个例子,然后,嘿!它说找不到gtkmm.h,没问题,我只是忘记链接库了。我通过Eclipse将/usr/include/gtkmm-2.4添加到我的

c++ - 编译gtkmm的问题

操作系统:Fedora14编译器:g++(GCC)4.5.120100924(RedHat4.5.1-4)我通过yum从存储库安装了gtkmm24-devel。为了确保安装按计划进行,我决定尝试页面上的一个示例。#includeintmain(intargc,char*argv[]){Gtk::Mainkit(argc,argv);Gtk::Windowwindow;Gtk::Main::run(window);return0;}我运行了这个例子,然后,嘿!它说找不到gtkmm.h,没问题,我只是忘记链接库了。我通过Eclipse将/usr/include/gtkmm-2.4添加到我的

c++ - 如何在 Gtkmm3 中使用 CssStyleProvider

我正在使用gtkmm3使用C++进行编程。我想改变我程序中的一些字体。我在gtkmm文档和gtk+文档中阅读了所有关于CssStyleProvider、StyleContext的内容,但我无法让它工作,也找不到任何关于它的教程。我正在尝试这样Glib::ustringdata;data="GtkMenuBar,GtkMenuItem{font-name:Sans6}";/*triedwithsemi-colon,too*/Glib::RefPtrasd=Gtk::CssProvider::create();Glib::RefPtrasd2=Gtk::StyleContext::crea

c++ - Eclipse 和 Gtkmm - "undefined reference to"

我使用Eclipse,我想在其中使用gtkmm。我有以下代码:#include#includeintmain(intargc,char*argv[]){Gtk::Mainkit(argc,argv);Gtk::WindowmainWindow;Gtk::Buttonbutton("Clickhere");mainWindow.set_title("Eclipse/GTKmmDemo");mainWindow.set_border_width(4);mainWindow.set_default_size(200,50);mainWindow.add(button);button.show

c++ - 为什么 Glibmm/Gtkmm 不包括 Glib::RefPtr 的一元取消引用运算符 *?

Glib::RefPtr允许通过“->”取消引用,但不允许通过“*”取消引用。这是为什么?我当然可以:classFoo{};Glib::RefPtrfooPtr;fooPtr.operator->();文档特别提到他们将operator*()排除在外。但他们没有就原因提供任何指导。为了清楚起见,使用示例进行了编辑:我看到它争论说“你永远不需要取消引用”一个RefPtr,但IMO看起来假违反直觉希望与动态分配对象和堆栈分配对象一起使用的函数需要最小公分母接口(interface),即按引用传递。以下面的例子为例:structFoo{voidprint(){printf("Success"