C ++ - Как отобразить значок в диалоге в gtkmm - PullRequest
0 голосов
/ 27 апреля 2018

В моей программе есть несколько диалогов, которые сообщают пользователям различные вещи, от ошибок до подтверждения.

Образец в документации говорит мне использовать это, чтобы установить значок в зависимости от диалога (предупреждение, информация, знак вопроса ...):

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 голосов
/ 27 апреля 2018

Согласно документации Gtk3 для создания диалогов с изображениями следует использовать GtkDialog.

Вы можете использовать set_image, но не рекомендуется с 3.12.

Более конкретно:

void Gtk :: MessageDialog :: set_image (виджет и изображение)

Устанавливает изображение диалога в изображение.

С gtkmm 2.10: Устаревший: 3.12: Используйте Gtk :: Dialog для создания диалогов с изображениями

Запрещены: Используйте диалог для создания диалогов с изображениями.

Параметры image Изображение.

...