Signal_draw in Gtkmm2.4
Signal_draw in Gtkmm2.4
我正在尝试编译一个使用cairomm进行绘图的gtkmm应用程序。它使用gtkmm3.0编译得很好,但当我尝试使用gtkmm2.4编译它时,我得到了:
错误:未在此作用域中声明"signal_draw"
我正在使用g++。
gtkmm2.4中似乎没有signal_draw(我错了吗?)。有什么功能/信号可以替代吗?
提前谢谢。
抱歉我英语不好。
部分代码:
class egclass:public Gtk::DrawingArea
{
公用:
egclass();
virtual~egclass();
virtual bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
};
egclass::egclass()
{
#如果定义GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
signal_draw().connect(sigc::mem_fun(*this,&egclass::on_draw),false);
#endif
}
较旧的gtkmm 2.4具有on_expose_event:
virtual bool on_expose_event(GdkEventExpose* event);
如果你需要为绘图创建一个cairo上下文,使用GTK+C API,它会像这样:
cairo_t *cr;
cr = gdk_cairo_create (event->window);
gdk_cairo_region (cr, event->region);
cairo_clip (cr);
/* do your drawing */
cairo_destroy (cr);
将上面的片段翻译成gtkmm留给读者练习。
另请参阅以下链接:
- 从gtkmm-2.4移植到gtkmm-3.0
- 从GTK+2.x迁移到GTK+3
- 示例_pixbufs.cc
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- Signal_draw in Gtkmm2.4