我开始在gtkmm中制作GUI。这是简化的标题:
#include <gtkmm/button.h>
#include <gtkmm/window.h>
class MainWindow : public Gtk::Window
{
public:
MainWindow();
virtual ~MainWindow();
protected:
Gtk::Button m_button1;
};
我想在构造函数块中定义我的按钮(不在初始化部分中),如下所示:
#include <gtkmm/button.h>
MainWindow::MainWindow()
m_Box(Gtk::ORIENTATION_VERTICAL,40)
{
m_button1("Button 1")
add(m_button1);
show_all_children();
}
但我的按钮构造出错了:
error: no match for call to ‘(Gtk::Button) (const char [9])’
如果我在初始化器中使用完全相同的语法构造按钮,它工作正常(不幸的是我不能这样做,因为按钮的文本将在构造函数中确定)。
答案 0 :(得分:1)
此
m_button1("Button 1")
不是构造函数调用。它是operator function
的调用,其参数类型为const char[9]
当创建类型为MainWindow
的对象时,将调用该按钮的构造函数。
答案 1 :(得分:0)