Linux gtk列表框-内容显示在水平线中间,列表框不适合窗口大小
我在gtk中为listbox编写了一个代码 问题 1.列表框的内容显示在水平线的中间。我希望它是左对齐的。 2.列表框不适合窗口大小 3.列表框位于笔记本选项卡内。我想当列表框中的项目被选中时,需要完成一些处理(调用一些函数),当前选项卡显示被隐藏,新选项卡显示结果和后退按钮。当按下“后退”按钮时,它会对两个选项卡执行两个案例 在1个选项卡中-它只显示以前的内容 在选项卡2中,它再次进行处理,并以原始格式在列表框中显示结果 我的代码如下Linux gtk列表框-内容显示在水平线中间,列表框不适合窗口大小,linux,listbox,gtk,Linux,Listbox,Gtk,我在gtk中为listbox编写了一个代码 问题 1.列表框的内容显示在水平线的中间。我希望它是左对齐的。 2.列表框不适合窗口大小 3.列表框位于笔记本选项卡内。我想当列表框中的项目被选中时,需要完成一些处理(调用一些函数),当前选项卡显示被隐藏,新选项卡显示结果和后退按钮。当按下“后退”按钮时,它会对两个选项卡执行两个案例 在1个选项卡中-它只显示以前的内容 在选项卡2中,它再次进行处理,并以原始格式在列表框中显示结果 我的代码如下 #include <gtk/gtk.h> #i
#include <gtk/gtk.h>
#include <glib.h>
#include <stdlib.h>
static void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL);
GtkWidget *notebook = gtk_notebook_new();
gtk_container_add(GTK_CONTAINER(window), notebook);
int count;
int i;
gchar *text;
for (count = 1; count <= 5; count++)
{
GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
text = g_strdup_printf("Page %d", count);
GtkWidget *label = gtk_label_new(text);
GtkWidget *scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(vbox), scrolledwindow);
//GtkWidget *textview = gtk_text_view_new();
GtkWidget *listbox = gtk_list_box_new();
for (i=1; i<100; i++)
{
gchar *name = g_strdup_printf("Label %i", i);
GtkWidget *label = gtk_label_new(name);
gtk_container_add(GTK_CONTAINER(listbox), label);
}
gtk_container_add(GTK_CONTAINER(scrolledwindow), listbox);
gtk_container_add(GTK_CONTAINER(vbox), scrolledwindow);
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
}
gtk_widget_show_all(window);
gtk_main();
return 0;
}
#包括
#包括
#包括
静态无效销毁(GtkWidget*小部件,gpointer数据)
{
gtk_main_quit();
}
int main(int argc,char*argv[])
{
gtk_init(&argc,&argv);
GtkWidget*window=gtk_window_new(gtk_window_TOPLEVEL);
gtk_窗口设置默认大小(gtk_窗口(窗口),200200);
g_信号连接(窗口,“销毁”,g_回调(销毁),空);
GtkWidget*notebook=gtk_notebook_new();
gtk_容器添加(gtk_容器(窗口)、笔记本);
整数计数;
int i;
gchar*文本;
对于(count=1;count回答1和2,都是关于对齐和展开属性的
您可以在使用gtk\u box\u pack\u*
函数集添加到容器时设置展开属性,例如
您可以使用gtk\u widget\u set\u halign
和gtk\u widget\u set\u valign
功能设置对齐
将这些应用于您的代码:
#include <gtk/gtk.h>
#include <glib.h>
#include <stdlib.h>
static void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL);
GtkWidget *notebook = gtk_notebook_new();
gtk_container_add(GTK_CONTAINER(window), notebook);
int count;
int i;
gchar *text;
for (count = 1; count <= 5; count++)
{
GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
text = g_strdup_printf("Page %d", count);
GtkWidget *label = gtk_label_new(text);
GtkWidget *scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
gtk_box_pack_start (GTK_BOX(vbox), scrolledwindow, TRUE, TRUE, 0);
GtkWidget *listbox = gtk_list_box_new();
for (i=1; i<100; i++)
{
gchar *name = g_strdup_printf("Label %i", i);
GtkWidget *label = gtk_label_new(name);
gtk_widget_set_halign (GTK_WIDGET(label), GTK_ALIGN_START);
gtk_container_add(GTK_CONTAINER(listbox), label);
}
gtk_container_add(GTK_CONTAINER(scrolledwindow), listbox);
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
}
gtk_widget_show_all(window);
gtk_main();
return 0;
}
#包括
#包括
#包括
静态无效销毁(GtkWidget*小部件,gpointer数据)
{
gtk_main_quit();
}
int main(int argc,char*argv[])
{
gtk_init(&argc,&argv);
GtkWidget*window=gtk_window_new(gtk_window_TOPLEVEL);
gtk_窗口设置默认大小(gtk_窗口(窗口),200200);
g_信号连接(窗口,“销毁”,g_回调(销毁),空);
GtkWidget*notebook=gtk_notebook_new();
gtk_容器添加(gtk_容器(窗口)、笔记本);
整数计数;
int i;
gchar*文本;
对于(count=1;count回答1和2,都是关于对齐和展开属性的
您可以在使用gtk\u box\u pack\u*
函数集添加到容器时设置展开属性,例如
您可以使用gtk\u widget\u set\u halign
和gtk\u widget\u set\u valign
功能设置对齐
将这些应用于您的代码:
#include <gtk/gtk.h>
#include <glib.h>
#include <stdlib.h>
static void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL);
GtkWidget *notebook = gtk_notebook_new();
gtk_container_add(GTK_CONTAINER(window), notebook);
int count;
int i;
gchar *text;
for (count = 1; count <= 5; count++)
{
GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
text = g_strdup_printf("Page %d", count);
GtkWidget *label = gtk_label_new(text);
GtkWidget *scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
gtk_box_pack_start (GTK_BOX(vbox), scrolledwindow, TRUE, TRUE, 0);
GtkWidget *listbox = gtk_list_box_new();
for (i=1; i<100; i++)
{
gchar *name = g_strdup_printf("Label %i", i);
GtkWidget *label = gtk_label_new(name);
gtk_widget_set_halign (GTK_WIDGET(label), GTK_ALIGN_START);
gtk_container_add(GTK_CONTAINER(listbox), label);
}
gtk_container_add(GTK_CONTAINER(scrolledwindow), listbox);
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
}
gtk_widget_show_all(window);
gtk_main();
return 0;
}
#包括
#包括
#包括
静态无效销毁(GtkWidget*小部件,gpointer数据)
{
gtk_main_quit();
}
int main(int argc,char*argv[])
{
gtk_init(&argc,&argv);
GtkWidget*window=gtk_window_new(gtk_window_TOPLEVEL);
gtk_窗口设置默认大小(gtk_窗口(窗口),200200);
g_信号连接(窗口,“销毁”,g_回调(销毁),空);
GtkWidget*notebook=gtk_notebook_new();
gtk_容器添加(gtk_容器(窗口)、笔记本);
整数计数;
int i;
gchar*文本;
对于(count=1;count同意该问题。op需要将该问题分解为多个小问题并分别提问。我觉得你的答案不错。同意该问题。op需要将该问题分解为多个小问题并分别提问。我觉得你的答案不错。