做宽屏网站,沈阳模板建站系统,网站关键词优化方案,桂林象鼻山照片一、C语言
在GTK中#xff0c;Gtk.ListStore是一个实现了Gtk.TreeModel接口的存储模型#xff0c;用于在如Gtk.TreeView这样的控件中存储数据。以下是一个简单的使用Gtk.ListStore的C语言示例#xff0c;该示例创建了一个列表#xff0c;并在图形界面中显示#xff1a;
…一、C语言
在GTK中Gtk.ListStore是一个实现了Gtk.TreeModel接口的存储模型用于在如Gtk.TreeView这样的控件中存储数据。以下是一个简单的使用Gtk.ListStore的C语言示例该示例创建了一个列表并在图形界面中显示
#include gtk/gtk.hint main(int argc, char *argv[]) {gtk_init(argc, argv);// 创建一个新的窗口GtkWidget *window gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window), ListStore Example);gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);g_signal_connect(window, destroy, G_CALLBACK(gtk_main_quit), NULL);// 创建ListStore其中有两列分别存储字符串和整数GtkListStore *store gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);// 填充ListStoreGtkTreeIter iter;gtk_list_store_append(store, iter);gtk_list_store_set(store, iter, 0, First item, 1, 10, -1);gtk_list_store_append(store, iter);gtk_list_store_set(store, iter, 0, Second item, 1, 20, -1);// 创建TreeView设置为使用ListStore模型GtkWidget *tree_view gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));// 为实现良好的内存管理将Model和View进行解耦g_object_unref(store);// 为TreeView添加两列Text Column 和 Integer ColumnGtkCellRenderer *renderer gtk_cell_renderer_text_new();GtkTreeViewColumn *column gtk_tree_view_column_new_with_attributes(String Column, renderer, text, 0, NULL);gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view), column);renderer gtk_cell_renderer_text_new();column gtk_tree_view_column_new_with_attributes(Integer Column, renderer, text, 1, NULL);gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view), column);// 将TreeView添加到窗口中gtk_container_add(GTK_CONTAINER(window), tree_view);// 显示所有窗口和控件gtk_widget_show_all(window);// 进入主事件循环gtk_main();return 0;
}
编译运行
gcc pkg-config --cflags gtk-3.0 -o ListStore ListStore.c pkg-config --libs gtk-3.0
./ListStore 二、python
在Python中要使用Gtk.ListStore通常与Gtk.TreeView结合来展示列表。这里提供一个使用Python的Gtk模块通常是PyGObject包和Gtk.ListStore的示例。如果尚未安装PyGObject你可能需要首先安装它。在大多数Linux发行版上可以通过包管理器来安装例如在Ubuntu上可以使用apt命令
sudo apt install python3-gi
以下是创建一个简单窗口并使用Gtk.ListStore的完整Python示例
import gi
gi.require_version(Gtk, 3.0)
from gi.repository import Gtkclass ListStoreExample(Gtk.Window):def __init__(self):Gtk.Window.__init__(self, titleListStore Example)self.set_default_size(200, 200)# 创建一个Gtk.ListStore其中包含了一个字符串和一个整数字段self.liststore Gtk.ListStore(str, int)# 添加数据行self.liststore.append([First Item, 1])self.liststore.append([Second Item, 2])# 创建一个Gtk.TreeView并设置model为之前的ListStoretreeview Gtk.TreeView(modelself.liststore)# 创建第一列-字符串列renderer_text Gtk.CellRendererText()column_text Gtk.TreeViewColumn(String, renderer_text, text0)treeview.append_column(column_text)# 创建第二列-整数列renderer_num Gtk.CellRendererText()column_num Gtk.TreeViewColumn(Number, renderer_num, text1)treeview.append_column(column_num)# 将TreeView添加到窗口中self.add(treeview)# 创建窗口实例
win ListStoreExample()
win.connect(destroy, Gtk.main_quit)
win.show_all()
# 进入GTK主循环
Gtk.main()
这个程序创建了一个包含两列一个字符串列和一个整数列的Gtk.ListStore。然后在Gtk.TreeView中用这个ListStore作为数据模型并添加了相应的列与渲染器来显示数据。最后它将TreeView添加到窗口并显示出来。 当然除了这里展示的静态数据可以根据需要动态添加、删除或修改ListStore中的数据。运行上面的程序之后会看到包含了数据的窗口。当关闭窗口GTK的主事件循环结束程序随之退出。
运行
python3 ListStore.py