如何根据内容停止Widget调整大小

时间:2018-04-20 15:37:06

标签: gtk gtk3

我在Ubuntu服务器18(beta2)/ x11 / openbox上使用GTK3 +(3.22)。语言是C.我正在从GTK2移植一个嵌入式应用程序,当文本内容达到一定限度时,它似乎没有动态调整标签小部件的大小。 在GTK3上,标签(和按钮)小部件现在似乎在文本内容接近可显示的最大大小时调整大小。

如果按钮小部件放在窗口上的FIXED容器中。我试过以下......

gtk_widget_set_size_request似乎只设置默认值或最小值,而不是max:

gtk_widget_set_size_request( GTK_WIDGET( GuiBottomFarLeftButton ) , GuiBottomButtonWidth , GuiBottomButtonHeight );

我尝试过gtk_widget_size_allocate,但似乎并没有限制最大尺寸。

GtkAllocation gtkallocTestSize = { GuiBottomButtonFarLeftX , GuiBottomButtonY , GuiBottomButtonWidth , GuiBottomButtonHeight};
gtk_widget_size_allocate( GTK_WIDGET( GuiBottomFarLeftButton ) , &gtkallocTestSize );

似乎没有gtk_widget _...函数限制我可以找到的最大大小或大小调整行为。到目前为止,我还没有找到限制特定小部件的最大大小的方法。我倾向于一种限制最大宽度的方法,因为控件的垂直大小似乎与我正在处理的应用程序中的GTK2下的行为一样。在大多数情况下,调整大小只会影响布局10到20像素,但这会产生非常糟糕的用户体验。

有没有办法禁用窗口小部件的大小调整或限制它的最大大小?或者其他一些工作实际上在最新的GTK3 +(3.22)上运行?

1 个答案:

答案 0 :(得分:0)

UX是优化的难点平衡。通常,您不应该假设gtk2行为是您要复制的行为。知识体系:从那时起,用户体验已经增加,而且变化总体上是正面的。您将剪切文本,减小字体大小或超大小部件。你无法拥有这一切。

滚动窗口在很多情况下都有帮助,但显然不适用于按钮和标签。在这种情况下,最好保持文本简短,并将工具提示用于需要更长时间解释的任何内容。