3

我有一个使用 gtkmm 2.4 的应用程序,它运行良好,直到我最近改用 gtkmm 3.0。我在使用 g++(版本 4.6.1)时遇到问题,它不断吐出错误“错误:'class Gtk::TextView' 没有名为'modify_font'的成员”。当我将构建包含恢复到 gtkmm 2.4(通过更改pkg-config gtkmm-3.0 --cflags --libs回 gtkmm-2.4)时,情况并非如此。

我跟着标题返回(从代码::块中),函数标题肯定在那里。看起来 Gtk::Widget::modify_font 也没有贬值。

关于 Gtk::TextView 我的类层次结构的示例:

// The parent of the offending TextView
class popupWindow : public Gtk::Window
{
public:
  popupWindow();
private:
  Gtk::TextView theView;
  Gtk::ScrolledWindow scrollView;
  Gtk::VBox layoutBox;
  Glib::RefPtr<Gtk::TextBuffer> textBuffer;
};

// The main window class
class mainWindow : public Gtk::Window
{
private:
  popupWindow foo;
};

// Part of the header where I try and set the modified font
popupWindow::popupwindow() : layoutBox(false, 8)
{
  // Modify the font styling of the TextView
  {
    Pango::FontDescription fdesc;
    fdesc.set_family("monospace");
    fdesc.set_size(10 * PANGO_SCALE);
    theView.modify_font(fdesc);
  }

  // Make a new text buffer
  textBuffer = Gtk::TextBuffer::create();


  add(layoutBox);
  layoutBox.pack_start(scrollView);
  scrollView.add(theView);
  theView.set_buffer(textBuffer);
}
4

1 回答 1

2

gtkmm 3.0有 override_font()而不是 modify_font()。

文档确实有点缺乏 3.0 中更改的细节,并且一些符号在 2.4 中被重命名而没有被弃用。我相信 gtkmm 开发人员会感兴趣,如果您有时间提供帮助,可以帮助您获得更好的文档。

于 2011-08-09T04:26:39.703 回答