2017-02-21 65 views
0

我原型在Glade(GTK#3.20 + C#)中的應用程序接口,並通過CssProvider使用我的CSS樣式。我有這樣的:GTK +對齊和調整大小與格萊德

enter image description here

的問題是,我使用GTKLayout作爲我的主要容器,我認爲這是錯誤的方式創建UI。我正在使用這種類型的容器,因爲它使我能夠在原型製作過程中根據需要在Glade中調整大小和拖動小部件。不好的一面是,當我調整它的大小時,小部件卡在應用程序窗口的左上角。我爲窗口創建了最小尺寸,但是我希望UI在窗口大小增加時自適應。你可以看到下面的問題:

enter image description here

我試圖創建與Box容器,Grid容器等這個UI。但我總是遇到同樣的問題:所有小部件的大小都是固定的(在原型製作過程中在Glade中),看起來不可能用它創建複雜的UI。

所以,我想一些有經驗的人來解釋我的幾件事情:

  1. 如果我在一個錯誤的方式使用GTKLayout我應該如何安排我的小部件(其中集裝箱)不得不調整能力他們就像我想要的(在格萊德),並在我的截圖有相同的樣子。
  2. 如果使用GTKLayout不是一個錯誤的做法,我應該如何解決對齊問題以創建自適應UI?
  3. 如果使用GTKLayout是一種不好的做法,我應該如何製作一個自適應UI以及哪些容器?

這裏是窗口(是的,我使用標籤控件來創建色塊)結構:

enter image description here

回答

0

查看不同的containers available,運行gtk-demo以查看如何構建示例,在現有應用程序上使用gtk-inspector以瞭解它們的佈局方式。

您也可以閱讀此佈局 「指南」:

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

TLDR:使用GtkGrid

+0

Yeeaah,你是對的。我檢查了Grid,經過30分鐘的操作後,我將UI移植到新的自適應系統中。謝謝! 調整大小問題已通過利潤率解決! –

0

GtkLayout沒有設計伸展,收縮,等等。您可能想要將您的GtkBox設置爲GTK_EXPAND(True)和/或GTK_FILL(True)。在Glade中選擇您的標籤,按鈕或子部件,然後在包裝選項卡下查找。

+0

我怎樣才能使相同的用戶界面只與框和網格?根據我的理解,調整容器內的小部件是不可能的。 –

+0

除了'expand'和'fill',另一件事是Glade * Common *選項卡下的'alignment'。這可以將您的方框/網格移動到中心或邊緣等。同時檢查* General *選項卡下方框/網格的同質性。此外,其中一些可用於盒/網格內的按鈕/標籤,使您可以使它們更小或居中等。 – theGtknerd

+0

是的,我明白了。但是,我怎樣才能調整網格單元格?它似乎即使沒有同質性也有侷限性。 –

0

我認爲在這種情況下,最好的選擇是GtkFixed。