Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux gtk列表框-内容显示在水平线中间,列表框不适合窗口大小_Linux_Listbox_Gtk - Fatal编程技术网

Linux gtk列表框-内容显示在水平线中间,列表框不适合窗口大小

Linux gtk列表框-内容显示在水平线中间,列表框不适合窗口大小,linux,listbox,gtk,Linux,Listbox,Gtk,我在gtk中为listbox编写了一个代码 问题 1.列表框的内容显示在水平线的中间。我希望它是左对齐的。 2.列表框不适合窗口大小 3.列表框位于笔记本选项卡内。我想当列表框中的项目被选中时,需要完成一些处理(调用一些函数),当前选项卡显示被隐藏,新选项卡显示结果和后退按钮。当按下“后退”按钮时,它会对两个选项卡执行两个案例 在1个选项卡中-它只显示以前的内容 在选项卡2中,它再次进行处理,并以原始格式在列表框中显示结果 我的代码如下 #include <gtk/gtk.h> #i

我在gtk中为listbox编写了一个代码 问题 1.列表框的内容显示在水平线的中间。我希望它是左对齐的。 2.列表框不适合窗口大小 3.列表框位于笔记本选项卡内。我想当列表框中的项目被选中时,需要完成一些处理(调用一些函数),当前选项卡显示被隐藏,新选项卡显示结果和后退按钮。当按下“后退”按钮时,它会对两个选项卡执行两个案例 在1个选项卡中-它只显示以前的内容 在选项卡2中,它再次进行处理,并以原始格式在列表框中显示结果

我的代码如下

#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需要将该问题分解为多个小问题并分别提问。我觉得你的答案不错。