Я пытаюсь использовать Gtk :: ScaleButton в Gtkmm 3. Моя проблема - это конструктор. Он нужен как последний параметр (см. Здесь: https://developer.gnome.org/gtkmm/stable/classGtk_1_1ScaleButton.html#a96753b6cb6b8adb0ed3727ba3eb8cfb7) вектор ustrings. Я предполагаю (я не могу найти его в документах, что это означает точно), я должен дать ему путь к + / - Images. Я хочу использовать элементы Gtk Stock для + / -. Как я могу достичь этого?
В настоящее время я даю ему пустой вектор, что приводит к предупреждению glibmm:
std::vector<Glib::ustring> icons;
Gtk::ScaleButton * scale = Gtk::manage(new Gtk::ScaleButton(Gtk::ICON_SIZE_SMALL_TOOLBAR, 0.0, 10.0, 1.0, icons));
Предупреждение:
glibmm-WARNING **: Glib::ConstructParams::ConstructParams(): object class "gtkmm__GtkScaleButton" has no property named "min"
Как я могу избежать предупреждения и дать ему значки акций?
Вы должны быть одним из первых, кто когда-либо пытался использовать этот конструктор Gtk :: ScaleButton из gtkmm. Кажется, он был сломан в течение нескольких лет.
Я исправил его в gtkmm: https://git.gnome.org/browse/gtkmm/commit/?id=26f94d231da9481d74acdd94e56168ed6b38609a
Но это будет некоторое время, пока это будет широко доступно через пакеты дистрибутива Linux. Тем временем вы можете попробовать использовать
Gtk::ScaleButton* button = Glib::wrap(gtk_scale_button_new(whatever));
См. Https://developer.gnome.org/gtkmm-tutorial/stable/sec-basics-gobj-and-wrap.html.en
Однако я не знаю, как это на самом деле должно было вести себя, поэтому вы можете столкнуться с другими ошибками. Вместо этого вы можете захотеть использовать полученный Gtk :: VolumeButton.
andlabs верна, что в документации GTK+ лучше описываются значки: https://developer.gnome.org/gtk3/stable/GtkScaleButton.html#GtkScaleButton--коны, и они действительно должны быть стандартными именами значков: http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html