Gtkmm,称为重载' Scale()"很暧昧

时间:2014-04-17 09:58:07

标签: c++ gtk gtk3 gtkmm

根据Gtkmm docs Gtk::Scale::Scale重载了构造函数,无法取消或Gtk::Orientation

我创建了对象:

Gtk::Scale m_scale;

并将其添加到Gtk::HBox

hbox.pack_start(m_scale, false, 0);

但它会产生错误:

 error: call of overloaded ‘Scale()’ is ambiguous

它告诉我候选人是没有任何参数的Gtk :: Scale和Gtk :: Orientation。

如何强制使用不带参数的Gtk :: Scale构造函数?

谢谢, S上。

1 个答案:

答案 0 :(得分:1)

看起来构造函数Gtk::Orientation具有该参数的默认值,因此也可以不带参数调用它:

public:
  Scale();
  explicit Scale(Orientation orientation = ORIENTATION_HORIZONTAL);

此处的关键字explicit没有帮助,它只是可能不允许将传入的任何内容转换为Orientation类型以使其匹配。

我说只是提供方向值,它至少会明确地显示您正在为其他人阅读代码创建哪种Scale小部件。