为什么这个列表框中的小部件太小了? GTK

Why is the widget in this Listbox too small? GTK

我正在使用 GTK-3.0 为 Linux 开发一个小型播客应用程序我想使用一个列表框来保存搜索结果,但是当我将一个小部件添加到列表框时它很远太小了 enter image description here

我已将所有 ui 内容放入头文件中。

#include<gtk/gtk.h>
#include <iostream>
extern "C"{
void createSearchResults(GtkWidget *e);
void MakeWindow(int *x,char ***y)
{
  
  GtkWidget *listBox;
  GtkWidget *window;
  GtkBuilder *builder;
  gtk_init(x,y);
  builder = gtk_builder_new();
  gtk_builder_add_from_file (builder, "PodcastWindow.glade", NULL);
  listBox = GTK_WIDGET(gtk_builder_get_object(builder,"SearchListBox"));
  window = GTK_WIDGET(gtk_builder_get_object(builder,"MainWindow"));
  gtk_builder_connect_signals(builder,NULL);
  g_object_unref(builder);
  gtk_widget_show(window);
  createSearchResults(listBox);
  gtk_main();
  return;
}
void on_MainWindow_destroy(){gtk_main_quit();}

void PodcastSearchEntry(GtkEntry *e){
  itunesSearch(gtk_entry_get_text(e));
}

void createSearchResults(GtkWidget *e){
  GtkWidget *tmp = gtk_label_new("helloWorld");
  gtk_container_add(GTK_CONTAINER(e),tmp);
}
}

我认为问题出在这个函数的某处

void createSearchResults(GtkWidget *e){
      GtkWidget *tmp = gtk_label_new("helloWorld");
      gtk_container_add(GTK_CONTAINER(e),tmp);
    }

如能提供任何帮助,我们将不胜感激。 PS 如果我可以对格式进行任何改进,请告诉我。

如果没有重现问题的小示例代码,很难知道您的代码到底出了什么问题。

话虽这么说,但您应该牢记的一件事是,在 GTK3 中,小部件默认情况下 可见(但在 GTK4 中已更改)。所以你可能想在你的 createSearchResults() 函数中做的是将 gtk_widget_show() 添加到你刚刚制作的标签中:

void createSearchResults(GtkWidget *e){
    GtkWidget *tmp = gtk_label_new("helloWorld");
    gtk_widget_show (tmp);
    gtk_container_add(GTK_CONTAINER(e),tmp);
}

分析小部件树中哪里有问题的一种方法是查看 GTK inspector。然后您可以单击以检查未按预期运行的小部件。