Grid Layout¶
The Grid Layout helps to place UI controls within the parent window.
It is similar to PyQt’s QGridLayout or Tkniter’s Grid geometry manager.
The Grid Layout is implemented through
setGeometry and
placeControl methods of a base PyXBMCt class.
Warning
Currently PyXBMCt does not support changing window geometry at runtime so you must call
setGeometry method only once.
To place a control you simply provide it as the 1st positional argument to
placeControl method,
and then specify a row and a column for the control as the next arguments,
and the control will be placed in a specific grid cell.
This eliminates the need to provide exact coordinates for each control and then fine-tune them.
If a control needs to occupy several grid cells, you can provide rowspan
and/or columspan parameters to specify how many cells it should take.
Note
Row and column numbers start from zero, i.e. the top-left cell will have row# = 0, column# = 0.
The placeControl medhod
does not actually check if a control will actually be placed within the parent window.
By providing a row and/or a column number which exceeds row and/or column count of the parent window,
a control can be placed outside the window, intentionally or unintentionally.
You need to check the visual appearance of your addon window and correct positions of controls, if necessary.
The Grid Layout also works with xbmcgui Controls, but when instantiating an xbmcgui Control you need to provide it with fake coordinates and size. Any integer values will do.
Tip
The size and aspect of an individual control can be adjusted with pad_x and pad_y parameters
of placeControl method.
By default, both padding values equal 5.