Gtkmm,重载的'Scale()'的调用是模棱两可的

Gtkmm, call of overloaded 'Scale()" is ambiguous

本文关键字:调用 模棱两可 Gtkmm Scale 重载      更新时间:2023-10-16

根据Gtkmm文档,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.

采用Gtk::Orientation的构造函数似乎有该参数的默认值,因此也可以在没有参数的情况下调用它:

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

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

我说,只要提供方向值,就可以清楚地看到您正在为其他阅读代码的人创建哪种Scale小部件。