在盒子或其他容器中对齐小部件(例如GtkLabel和GtkEntry)-最佳做法 [英] Align widgets (e.g. GtkLabel and GtkEntry) in boxes or other containers - best practice
本文介绍了在盒子或其他容器中对齐小部件(例如GtkLabel和GtkEntry)-最佳做法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在框或框架等垂直容器中对齐不同(文本)窗口小部件的最佳做法是什么?请没有硬编码的解决方案.
What is the best practice for aligning different (text) widgets in vertical containers such as boxes or frames etc? No hard coded solution please.
#include <gtk/gtk.h>
int main(int argc, char** argv) {
GtkWidget *window, *hbox, *vbox[2];
gtk_init(NULL,NULL);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER(window), 10);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
vbox[0] = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
vbox[1] = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
gtk_container_add(GTK_CONTAINER(window), hbox);
gtk_container_add(GTK_CONTAINER(hbox), vbox[0]);
gtk_container_add(GTK_CONTAINER(hbox), vbox[1]);
gtk_box_pack_start(GTK_BOX(vbox[0]), gtk_label_new("name"), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox[0]), gtk_label_new("first name"), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox[0]), gtk_label_new("village"), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox[1]), gtk_entry_new(), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox[1]), gtk_entry_new(), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox[1]), gtk_entry_new(), FALSE, FALSE, 0);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
感谢您的帮助
推荐答案
您想要的是 GtkGrid
—将小部件打包为行和列
GtkGrid
— Pack widgets in rows and columns
GtkWidget *grid = gtk_grid_new();
并附加内容:
gtk_grid_attach(grid, gtk_label_new("name"), 0, 0, 1, 1);
gtk_grid_attach(grid, gtk_label_new("first name"), 0, 1, 1, 1);
gtk_grid_attach(grid, gtk_label_new("village"), 0, 2, 1, 1);
gtk_grid_attach(grid, gtk_entry_new(), 1, 0, 1, 1);
gtk_grid_attach(grid, gtk_entry_new(), 1, 1, 1, 1);
gtk_grid_attach(grid, gtk_entry_new(), 1, 2, 1, 1);
这篇关于在盒子或其他容器中对齐小部件(例如GtkLabel和GtkEntry)-最佳做法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文