设置 GtkButton 宽度
Set GtkButton width
我在设置 GtkButton(s) 的宽度时遇到问题。当我将 gtk_widget_set_size_request(button, width, height)
与 width = 40
和 height = 40
一起使用时,我的宽度错误但高度正确。看到它:
我的代码:
// On sépare les panneaux :
GtkWidget* commands_drawing_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
GtkWidget* buttons_tabpanel_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
// On met tout sur le container
gtk_container_add(GTK_CONTAINER(container), buttons_tabpanel_box);
gtk_container_add(GTK_CONTAINER(container), commands_drawing_box);
// Boutons
GtkWidget* buttons_grid = gtk_grid_new();
gtk_box_pack_start(GTK_BOX(buttons_tabpanel_box), buttons_grid, TRUE, TRUE, 1);
// Bouton "Nouveau dessin"
GtkWidget* btn_new_drawing_button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
GtkWidget* btn_new_drawing = gtk_button_new();
GtkWidget* btn_new_drawing_image = gtk_image_new_from_file("D:\Dev\Icones_32px\32_newdocument.png");
gtk_button_set_image(GTK_BUTTON(btn_new_drawing), btn_new_drawing_image);
gtk_grid_attach(GTK_GRID(buttons_grid), btn_new_drawing_button_box, 0, 0, 1, 1);
gtk_container_add(GTK_CONTAINER(btn_new_drawing_button_box), btn_new_drawing);
gtk_widget_set_size_request(btn_new_drawing, 40, 40);
而且我不想使用 Glade。
你能找到解决办法吗?
关于您的按钮宽度错误的可能情况可能是由于 image.The 图片的宽度大于 40。在这种情况下,图片不会调整大小并且按钮会换行图片周围。
在您的代码中,您使用 GtkButtonBox 使按钮布局均匀。(作为替代方案,您可以使用 gtkbox)
如果您删除它,那么您的代码就可以正常工作。
但如果您必须使用按钮框。然后尝试更改小部件属性。 (https://developer.gnome.org/gtk3/stable/GtkButtonBox.html#GtkButtonBox--s-child-min-height)
按钮内边距和最小高度将被设置为删除那些你必须使用的 css
button {
min-width:0px;
padding:0px;
border:0px;
}
为了帮助您调试,请尝试使用 gtk-debugger (https://askubuntu.com/questions/597259/how-do-i-open-gtk-inspector)
我在设置 GtkButton(s) 的宽度时遇到问题。当我将 gtk_widget_set_size_request(button, width, height)
与 width = 40
和 height = 40
一起使用时,我的宽度错误但高度正确。看到它:
我的代码:
// On sépare les panneaux :
GtkWidget* commands_drawing_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
GtkWidget* buttons_tabpanel_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
// On met tout sur le container
gtk_container_add(GTK_CONTAINER(container), buttons_tabpanel_box);
gtk_container_add(GTK_CONTAINER(container), commands_drawing_box);
// Boutons
GtkWidget* buttons_grid = gtk_grid_new();
gtk_box_pack_start(GTK_BOX(buttons_tabpanel_box), buttons_grid, TRUE, TRUE, 1);
// Bouton "Nouveau dessin"
GtkWidget* btn_new_drawing_button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
GtkWidget* btn_new_drawing = gtk_button_new();
GtkWidget* btn_new_drawing_image = gtk_image_new_from_file("D:\Dev\Icones_32px\32_newdocument.png");
gtk_button_set_image(GTK_BUTTON(btn_new_drawing), btn_new_drawing_image);
gtk_grid_attach(GTK_GRID(buttons_grid), btn_new_drawing_button_box, 0, 0, 1, 1);
gtk_container_add(GTK_CONTAINER(btn_new_drawing_button_box), btn_new_drawing);
gtk_widget_set_size_request(btn_new_drawing, 40, 40);
而且我不想使用 Glade。
你能找到解决办法吗?
关于您的按钮宽度错误的可能情况可能是由于 image.The 图片的宽度大于 40。在这种情况下,图片不会调整大小并且按钮会换行图片周围。
在您的代码中,您使用 GtkButtonBox 使按钮布局均匀。(作为替代方案,您可以使用 gtkbox) 如果您删除它,那么您的代码就可以正常工作。
但如果您必须使用按钮框。然后尝试更改小部件属性。 (https://developer.gnome.org/gtk3/stable/GtkButtonBox.html#GtkButtonBox--s-child-min-height)
按钮内边距和最小高度将被设置为删除那些你必须使用的 css
button {
min-width:0px;
padding:0px;
border:0px;
}
为了帮助您调试,请尝试使用 gtk-debugger (https://askubuntu.com/questions/597259/how-do-i-open-gtk-inspector)