使用Glade进行GTK +对齐和调整大小

时间:2017-02-21 15:37:42

标签: gtk gtk3 gtk# glade

我正在使用Glade(GTK#3.20 + C#)中的应用程序界面进行原型设计,并通过CssProvider使用我的CSS样式。我有这个:

enter image description here

问题是我使用GTKLayout作为我的主容器,我认为这是创建UI的错误方法。我正在使用这种类型的容器,因为它使我能够在原型设计期间根据我的需要调整大小和拖动小部件。不好的是,当我调整大小时,小部件卡在应用程序窗口的左上角。我为窗口制作了最小尺寸,但我希望在窗口大小增加时UI可以自适应。您可以在下面看到问题:

enter image description here

我尝试使用Box容器,Grid容器等创建此UI。但我总是遇到同样的问题:所有小部件的大小都是固定的(在原型设计期间在Glade中),看起来不可能用它来创建复杂的UI。

所以,我想让一些有经验的人向我解释一些事情:

  1. 如果我以错误的方式使用GTKLayout,我应该如何组织我的小部件(在哪些容器中)以便能够像我想要的那样调整它们(在Glade中)并且具有与我的屏幕截图相同的外观。
  2. 如果使用GTKLayout不是一个坏习惯,我应该如何解决对齐问题以制作自适应用户界面?
  3. 如果使用GTKLayout是不好的做法,我该如何制作自适应用户界面以及哪些容器?
  4. 这是窗口的结构(是的,我使用Label小部件来创建颜色面板):

    enter image description here

3 个答案:

答案 0 :(得分:1)

查看不同的containers available,运行gtk-demo以了解如何构建示例,在现有应用程序上使用gtk-inspector来了解它们的布局。

您也可以阅读此布局“指南”:

https://python-gtk-3-tutorial.readthedocs.io/en/latest/layout.html

TLDR:使用GtkGrid

答案 1 :(得分:0)

GtkLayout不适合拉伸,收缩等。您可能希望将GtkBox设置为GTK_EXPAND(True)和/或GTK_FILL(True)。在Glade中选择您的标签,按钮或子窗口小部件,并在包装选项卡下查看。

答案 2 :(得分:0)

我认为在这种情况下,最好的选择是GtkFixed。