私は Urwid ライブラリ (Python で構築されたもの) を使用する初心者であり、urwid の例でいくつかの既存の urwid の例を理解しようとしています。それらの1つはこのコードです:
import urwid
palette = [
('banner', 'black', 'light gray', 'standout,underline'),
('streak', 'black', 'dark red', 'standout'),
('bg', 'black', 'dark blue'),]
txt = urwid.Text(('banner', u" Hello World "), align='center')
map1 = urwid.AttrMap(txt, 'streak')
fill = urwid.Filler(map1)
map2 = urwid.AttrMap(fill, 'bg')
def exit_on_q(input):
if input in ('q', 'Q'):
raise urwid.ExitMainLoop()
loop = urwid.MainLoop(map2, palette, unhandled_input=exit_on_q)
loop.run()
- この例では、属性はどのように機能しますか?
- 前景と背景とはどういう意味ですか?
- map1 "wraps" txt とはどういう意味ですか? map1 という名前のウィジェットを作成し、ウィジェットを txt が配置されている画面位置に配置するということですか? 「ウィジェット A を別のウィジェット B でラップする」というフレーズは、「ウィジェット A をウィジェット B にマップする」と言うのと同じ意味ですか?
- map1 は Filler 装飾ウィジェットの original_widget ですか?
- streak の垂直方向の高さと txt の垂直方向の高さが正確に一致するコード部分はどれですか? streak の垂直方向の高さが txt の垂直方向の高さよりも大きくなったり小さくなったりしないのはなぜですか? map2 がない場合、txt1 を除く画面の残りの部分は赤になるか、黒だけになるのでしょうか?