tests/gridlayout_rowspan.py
author Radek Brich <radek.brich@devl.cz>
Sun, 22 Feb 2015 09:53:13 +0100
changeset 119 dd91747504dd
parent 19 5e78d52ebb24
permissions -rwxr-xr-x
Redraw widgets on request. Add scrollbar demo.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
sys.path.append('..')

from tuikit import Container, Widget, Size, GridLayout

# +---+---+---+
# | 0     | 1 |
# +---+---+   +
# | 2 | 3 |   |
# +---+   +   +
# | 4 |   |   |
# +---+---+---+
#
# 0 - colspan = 2
# 1 - rowspan = 3
# 3 - rowspan = 2

if __name__ == '__main__':
    cont = Container()

    w = [None] * 6
    for i in range(6):
        w[i] = Widget()
        cont.add(w[i])

    w[0].hints['colspan'] = 2

    w[1].sizemin = Size(2,2)
    w[3].sizemin = Size(6,1)

    grid = GridLayout(3)
    grid.container = cont

    print('* _fillgrid')
    grid._fillgrid()

    print('span:')
    for row in grid._grid:
        for col in row:
            print('[%s,%d,%d]' % (
                col['widget'].__class__.__name__[0],
                col['colspan'],
                col['rowspan']), end=' ')
        print()

    print('* _computesizes')
    grid._computesizes()

    print('sizemin:')
    for row in grid._grid:
        for col in row:
            w = col['widget']
            if w is None:
                print('[0,0]', end=' ')
            else:
                print('[{0.w},{0.h}]'.format(w.sizemin), end=' ')
        print()

    print('colminw:')
    print(grid._colminw)

    print('rowminh:')
    print(grid._rowminh)