gtkmm按钮的c ++构造函数未定义错误

时间:2014-02-23 16:26:39

标签: c++ constructor gtkmm

我开始在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])’

如果我在初始化器中使用完全相同的语法构造按钮,它工作正常(不幸的是我不能这样做,因为按钮的文本将在构造函数中确定)。

2 个答案:

答案 0 :(得分:1)

m_button1("Button 1")

不是构造函数调用。它是operator function的调用,其参数类型为const char[9]

当创建类型为MainWindow的对象时,将调用该按钮的构造函数。

答案 1 :(得分:0)

由于按钮已初始化,只需使用以下标签设置标签:

m_button1.set_label("Button 1");

文档here