Glade:如何将多个参数传递给信号处理程序?
问问题
1343 次
3 回答
2
你在林间空地能做的事情非常有限。您可以将零个或一个对象作为用户数据传递给信号处理程序。该对象必须是一个小部件(或其他对象),也存在于 glade 项目中。
另一方面,如果你从代码中连接信号,你可以随意传递一个包含各种东西的结构。
如果你自己创建信号,你可以利用编组器来创建你想要的参数数量(对于信号处理程序原型),但仍然只有一个 userdata 参数。所以这不会让你指定更多的参数然后连接信号,然后才调用它。
于 2011-11-09T03:56:25.230 回答
1
从这里:
http://library.gnome.org/devel/gtkmm-tutorial/2.21/sec-connecting-signal-handlers.html.en ...
我们刚刚告诉过您,按钮的单击信号期望调用不带参数的方法。所有信号都有这样的要求——你不能将一个带有两个参数的函数挂接到一个没有期望的信号(当然,除非你使用一个适配器,比如 sigc::bind())。因此,重要的是要知道您将期望连接到给定信号的信号处理程序类型。
于 2010-11-04T20:39:04.827 回答
0
当应用程序加载时,为什么不简单地获取对需要在事件处理程序中访问的每个对象的引用?如果您将这些引用存储为全局变量,那么您需要将多少参数传递给事件处理程序并不重要。所有 Gtk 小部件都可以在您的函数中使用,但您认为合适。
于 2014-12-31T20:21:39.187 回答