错误:无效值不应该被忽略

编程入门 行业动态 更新时间:2024-10-03 10:41:08
本文介绍了错误:无效值不应该被忽略-C/GTK +的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试在GTK +中创建一个具有如下所示标签的窗口:

I am trying to create a window in GTK+ that has tab looks like this:

每当用户单击新建"按钮时,就会出现一个新标签.

Whenever the user clicks in the "New" button, there is a new tab appear.

但是,当我编译程序时,出现了错误:void值不应该被忽略

However, when I was compiling my program I got an error: void value not ignored as it ought to be

phongcao@phongcao:~$ g++ /home/phongcao/C++/GTK+/newtab.cc -o /home/phongcao/C++/GTK+/newtab `pkg-config gtk+-2.0 --cflags --libs` /home/phongcao/C++/GTK+/newtab.cc: In function ‘int main(int, char**)’: /home/phongcao/C++/GTK+/newtab.cc:51:3: error: void value not ignored as it ought to be

这是代码:

#include <gtk/gtk.h> void destroy(GtkWidget *window, gpointer data) { gtk_main_quit(); } void new_tab(GtkNotebook *notebook, GtkWidget *content, GtkWidget *hbox) { gtk_notebook_append_page(notebook, content, hbox); } int main(int argc, char *argv[]) { GtkWidget *window, *label, *content; GtkWidget *button, *hbox, *notebook; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(window), 10); gtk_window_set_title(GTK_WINDOW(window), "New Tab"); gtk_widget_set_size_request(window, 300, 200); notebook = gtk_notebook_new(); button = gtk_button_new_with_label("New"); label = gtk_label_new("Tab"); hbox = gtk_hbox_new(FALSE, 5); content = gtk_label_new("This is a tab"); gint a = 0; gtk_box_pack_start_defaults(GTK_BOX(hbox), label); gtk_box_pack_start_defaults(GTK_BOX(hbox), button); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), content, hbox); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP); //This following line is where the error is from: g_signal_connect(G_OBJECT(button), "new_tab", G_CALLBACK(new_tab(GTK_NOTEBOOK(notebook), content, hbox)), NULL); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL); gtk_container_add(GTK_CONTAINER(window), notebook); gtk_widget_show_all(hbox); gtk_widget_show_all(window); gtk_main(); return 0; }

感谢您的帮助!!我真的很感激!

推荐答案

行号对我来说意义不大,但我认为您的问题就在这里(出于说明目的而重新格式化):

The line number doesn't make much sense to me but I think your problem is right here (reformatted for illustrative purposes):

g_signal_connect(G_OBJECT(button), "new_tab", G_CALLBACK(new_tab(GTK_NOTEBOOK(notebook), content, hbox)), /* <== Badness */ NULL );

您正在G_CALLBACK宏内调用new_tab函数. new_tab函数返回void(即没有返回值),但是在需要一个值的上下文中被调用,因此将出现无效的空值"错误.我想你的意思是说更多这样的话:

You're calling the new_tab function inside the G_CALLBACK macro. The new_tab function returns void (i.e. no return value) but it is being called in a context that needs a value and hence the "void value not ignored" error. I think you mean to say something more like this:

g_signal_connect(G_OBJECT(button), "new_tab", G_CALLBACK(new_tab), NULL);

更多推荐

错误:无效值不应该被忽略

本文发布于:2023-11-26 09:48:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1633622.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!