如何将额外的值传递给 GTK+ 中的信号?
例如:
void btnclicked(GtkWidget *widget, gpointer data, const char *str)
{
std::cout << str;
}
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(btnclicked), NULL, "extra string");
我不能使用 C++0x。
最佳答案
这就是 data
参数的用途:
void btnclicked(GtkButton *button, gpointer data)
{
const char *str = (const char *)data;
std::cout << str;
}
g_signal_connect(button, "clicked", G_CALLBACK(btnclicked), "extra string");
如果您使用 Gtkmm,在 C++ 中有更好的方法,涉及 sigc
,但由于您使用的是 GTK 的 C API,因此您必须以 C 方式进行。
关于c++ - 将额外值传递给 GTK+ 中的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045571/