GtkLabel在更新其内容后未包装

GtkLabel在更新其内容后未包装,gtk,gtk3,Gtk,Gtk3,以下是我正在使用的代码: messageCrypte= gtk_label_new(""); gtk_widget_set_size_request(messageCrypte, 400, 100); gtk_label_set_line_wrap(GTK_LABEL(messageCrypte), TRUE); gtk_grid_attach(GTK_GRID(cryptTab), messageCrypte, 0, ++i, 2, 1); 当我通过向gtk_

以下是我正在使用的代码:

    messageCrypte= gtk_label_new("");
    gtk_widget_set_size_request(messageCrypte, 400, 100);
    gtk_label_set_line_wrap(GTK_LABEL(messageCrypte), TRUE);
    gtk_grid_attach(GTK_GRID(cryptTab), messageCrypte, 0, ++i, 2, 1);
当我通过向gtk_label_new传递字符串来手动初始化标签时,文本被包装, 但在更新GtkLabel时,它会将窗口大小增加到无限大,而无需包装

从文档中:

请注意,将换行设置为TRUE不会使标签换行 在其父容器的宽度上,因为GTK+小部件在概念上 无法根据父容器的大小进行申请。 对于在特定位置包裹的标签,请设置标签的宽度 使用gtk_widget_set_size_request()


我照上面说的做了,但没有结果

问题出现在包裹模式下, wrapd模式默认为“…WORD”,这意味着它将在以下情况下进行包装: (超出限制,出现新单词) 但是我输入了一个不包含空间的字符串例子,所以它会把它看成是一个单词, 但将wrao模式设置为“…CHAR”时,它将在以下情况下进行包装:
(超出了限制,出现了一个新字符)当然,第二个条件总是经过验证的,

我不记得很清楚,但您是否也尝试过设置换行模式(例如,设置为PANGO\u wrap\u WORD)?我可能会尝试一个调试步骤,而不是编辑元素的内容,尝试完全替换私奔;如果包装正确,请考虑比较内容替换的元素和重生元素之间的属性/属性。只是一个猜测。这正是我想要尝试的!!!!我也有同样的想法!问题是获取GtkLabel属性!!!!我正在处理g_object_get。。。但是它对于小部件的所有属性都很重要!!!