为什么这个列表框中的小部件太小了? 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。然后您可以单击以检查未按预期运行的小部件。
我正在使用 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。然后您可以单击以检查未按预期运行的小部件。