def set_letter(self, letter):
"""Set the column header with letter."""
self.letter = letter
header = urwid.AttrWrap(
urwid.Text( ["Column ",('key',letter)],
layout = CALC_LAYOUT), 'colhead' )
self.frame = urwid.Frame( self.listbox, header )
python类AttrWrap()的实例源码
def __init__(self):
self.head = urwid.AttrWrap(
urwid.Text(["Help Column ", ('key',"?")],
layout = CALC_LAYOUT),
'help')
self.foot = urwid.AttrWrap(
urwid.Text(["[text continues.. press ",
('key',"?"), " then scroll]"]), 'helpnote' )
self.items = [urwid.Text(x) for x in self.help_text]
self.listbox = urwid.ListBox(urwid.SimpleListWalker(self.items))
self.body = urwid.AttrWrap( self.listbox, 'help' )
self.frame = urwid.Frame( self.body, header=self.head)
def create_radio_button(self, g, name, font, fn):
w = urwid.RadioButton(g, name, False, on_state_change=fn)
w.font = font
w = urwid.AttrWrap(w, 'button normal', 'button select')
return w
def create_disabled_radio_button(self, name):
w = urwid.Text(" " + name + " (UTF-8 mode required)")
w = urwid.AttrWrap(w, 'button disabled')
return w
def create_edit(self, label, text, fn):
w = urwid.Edit(label, text)
urwid.connect_signal(w, 'change', fn)
fn(w, text)
w = urwid.AttrWrap(w, 'edit')
return w
def __init__(self, node):
self.__super.__init__(node)
# insert an extra AttrWrap for our own use
self._w = urwid.AttrWrap(self._w, None)
self.flagged = False
self.update_w()
def __init__(self):
cwd = os.getcwd()
store_initial_cwd(cwd)
self.header = urwid.Text("")
self.listbox = urwid.TreeListBox(urwid.TreeWalker(DirectoryNode(cwd)))
self.listbox.offset_rows = 1
self.footer = urwid.AttrWrap(urwid.Text(self.footer_text),
'foot')
self.view = urwid.Frame(
urwid.AttrWrap(self.listbox, 'body'),
header=urwid.AttrWrap(self.header, 'head'),
footer=self.footer)
def main_shadow(self, w):
"""Wrap a shadow and background around widget w."""
bg = urwid.AttrWrap(urwid.SolidFill(u"\u2592"), 'screen edge')
shadow = urwid.AttrWrap(urwid.SolidFill(u" "), 'main shadow')
bg = urwid.Overlay( shadow, bg,
('fixed left', 3), ('fixed right', 1),
('fixed top', 2), ('fixed bottom', 1))
w = urwid.Overlay( w, bg,
('fixed left', 2), ('fixed right', 3),
('fixed top', 1), ('fixed bottom', 2))
return w
def button(self, t, fn):
w = urwid.Button(t, fn)
w = urwid.AttrWrap(w, 'button normal', 'button select')
return w
def radio_button(self, g, l, fn):
w = urwid.RadioButton(g, l, False, on_state_change=fn)
w = urwid.AttrWrap(w, 'button normal', 'button select')
return w
def __init__(self, data=None):
self.topnode = ExampleParentNode(data)
self.listbox = urwid.TreeListBox(urwid.TreeWalker(self.topnode))
self.listbox.offset_rows = 1
self.header = urwid.Text( "" )
self.footer = urwid.AttrWrap( urwid.Text( self.footer_text ),
'foot')
self.view = urwid.Frame(
urwid.AttrWrap( self.listbox, 'body' ),
header=urwid.AttrWrap(self.header, 'head' ),
footer=self.footer )
def __init__(self, text, height, width, body=None):
width = int(width)
if width <= 0:
width = ('relative', 80)
height = int(height)
if height <= 0:
height = ('relative', 80)
self.body = body
if body is None:
# fill space with nothing
body = urwid.Filler(urwid.Divider(),'top')
self.frame = urwid.Frame( body, focus_part='footer')
if text is not None:
self.frame.header = urwid.Pile( [urwid.Text(text),
urwid.Divider()] )
w = self.frame
# pad area around listbox
w = urwid.Padding(w, ('fixed left',2), ('fixed right',2))
w = urwid.Filler(w, ('fixed top',1), ('fixed bottom',1))
w = urwid.AttrWrap(w, 'body')
# "shadow" effect
w = urwid.Columns( [w,('fixed', 2, urwid.AttrWrap(
urwid.Filler(urwid.Text(('border',' ')), "top")
,'shadow'))])
w = urwid.Frame( w, footer =
urwid.AttrWrap(urwid.Text(('border',' ')),'shadow'))
# outermost border area
w = urwid.Padding(w, 'center', width )
w = urwid.Filler(w, 'middle', height )
w = urwid.AttrWrap( w, 'border' )
self.view = w
def add_buttons(self, buttons):
l = []
for name, exitcode in buttons:
b = urwid.Button( name, self.button_press )
b.exitcode = exitcode
b = urwid.AttrWrap( b, 'selectable','focus' )
l.append( b )
self.buttons = urwid.GridFlow(l, 10, 3, 1, 'center')
self.frame.footer = urwid.Pile( [ urwid.Divider(),
self.buttons ], focus_item = 1)
def __init__(self, text, height, width):
self.edit = urwid.Edit()
body = urwid.ListBox([self.edit])
body = urwid.AttrWrap(body, 'selectable','focustext')
DialogDisplay.__init__(self, text, height, width, body)
self.frame.set_focus('body')
def __init__(self, file, height, width):
l = []
# read the whole file (being slow, not lazy this time)
for line in open(file).readlines():
l.append( urwid.Text( line.rstrip() ))
body = urwid.ListBox(l)
body = urwid.AttrWrap(body, 'selectable','focustext')
DialogDisplay.__init__(self, None, height, width, body)
def make_header(self):
if self.leetcode.is_login:
columns = [
('fixed', 15, urwid.Padding(urwid.AttrWrap(
urwid.Text('%s' % config.username),
'head', ''))),
urwid.AttrWrap(urwid.Text('You have solved %d / %d problems. ' %
(len(self.leetcode.solved), len(self.leetcode.quizzes))), 'head', ''),
]
return urwid.Columns(columns)
else:
text = urwid.AttrWrap(urwid.Text('Not login'), 'head')
return text
def make_success_view(self):
blank = urwid.Divider()
status_header = urwid.AttrWrap(urwid.Text('Run Code Status: '), 'body')
status = urwid.AttrWrap(urwid.Text('Accepted'), 'accepted')
columns = urwid.Columns([(20, status_header), (20, status)])
runtime = urwid.Text('Run time: %s' % self.result['status_runtime'])
result_header = urwid.Text('--- Run Code Result: ---', align='center')
list_items = [
result_header,
blank, columns,
blank, runtime
]
self._append_stdout_if_non_empty(list_items)
return urwid.Padding(urwid.ListBox(urwid.SimpleListWalker(list_items)), left=2, right=2)
def __init__(self):
title = urwid.AttrWrap(urwid.Text('Help'), 'body')
body = urwid.Text(HelpView.__doc__)
pile = urwid.Pile([title, body])
filler = urwid.Filler(pile)
urwid.Frame.__init__(self, filler)
def __init__(self, quiz, loop = None):
self.quiz = quiz
self.loop = loop
self.logger = logging.getLogger(__name__)
blank = urwid.Divider()
view_title = urwid.AttrWrap(urwid.Text(self.quiz.title), 'body')
view_text = self.make_body_widgets()
view_code_title = urwid.Text('\n --- Sample Code ---\n')
view_code = urwid.Text(self.quiz.sample_code)
listitems = [blank, view_title, blank] + view_text + \
[blank, view_code_title, blank, view_code, blank]
self.listbox = urwid.ListBox(urwid.SimpleListWalker(listitems))
urwid.Frame.__init__(self, self.listbox)
def radio_button(g, l, fn):
""" Inheriting radio button of urwid """
w = urwid.RadioButton(g, l, False, on_state_change=fn)
w = urwid.AttrWrap(w, 'button normal', 'button select')
return w