我在 MSYS2 上使用 GTK+3。我想将 GtkWidget 的宽度设置为 1 但我不能,请问该怎么做?
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
GtkWidget *label = gtk_label_new("Hello, World!");
gtk_container_add(GTK_CONTAINER(window), label);
// I want to set width to 1!
gtk_widget_set_size_request(label, 1, -1);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
请阅读Gtk4的文档: “小部件的大小请求是小部件在仍然正常运行并正确绘制自身的情况下可以接受的最小大小。然而,在某些奇怪的情况下,小部件可能被分配小于其请求的大小,并且在许多情况下,小部件可能被分配更多空间超出了要求。”
我建议使用布局管理器来解决您的问题。