C ++ - 如何在gtkmm中的对话框中显示图标

时间:2018-04-27 07:47:09

标签: c++ dialog icons gtkmm

我的程序中有几个Dialog,告诉用户各种各样的事情,从错误到确认。

文档中的示例告诉我使用它来根据对话框设置图标(警告,信息,问号......):

Gtk::MessageDialog dialog(*this, "This is a QUESTION MessageDialog",
    false /* use_markup */, Gtk::MESSAGE_QUESTION,
    Gtk::BUTTONS_OK_CANCEL);

但是,我没有在对话框中显示任何图标,我只能使用以下内容更改顶部栏中的图标:

Gtk::MessageDialog dialog(*this,~     
    "Please select something first.",
    false,                        
    Gtk::MESSAGE_ERROR,           
    Gtk::BUTTONS_OK);             
dialog.set_icon_name("dialog-error"); 
dialog.run();                         

我没有错误,没有警告,这个编译和执行就好了,但是生成的消息框中没有任何图标。如何才能在我的对话框中显示正确的图标?我也尝试了其他的MESSAGE_ *,没有成功。

1 个答案:

答案 0 :(得分:0)

根据Gtk3 documentation,应该使用GtkDialog创建带图像的对话框。

您可以使用FilterProxyModel { id: filterProxyModel model: <YourBaseModel> delegate: <YourDelegate> filterAccepts: function(item) { // Eg: Only "small" items will be displayed return item.size == "small" } } GridView { anchors.fill: parent model: filterProxyModel cellHeight: 100 cellWidth: 100 } ,但自3.12以来已弃用。

更具体:

  

void Gtk :: MessageDialog :: set_image(Widget&amp; image)

     

将对话框的图像设置为图像。

     

由于gtkmm 2.10:       不推荐使用:3.12:使用Gtk :: Dialog创建带图像的对话框

     

推荐使用:       使用对话框创建带图像的对话框。

     

参数       image图像。