hi! i have some problems getting an overlay widget to work. can you help me please and have a quick look at the following code?
this is the error if i press 'h' which triggers the code: "ValueError: need more than 1 value to unpack"i looked at the examples but didn't find any hint why my code doesn't work but
the example's one does. thank your for this good piece of software! regards thomas prochaska
#!/usr/bin/env python
## gajimnox.py
##
##
## Copyright (C) 2007 Thomas Prochaska <[EMAIL PROTECTED]>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 2 only.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
import urwid.curses_display
import urwid
class Gajimnox:
palette = [
('header', 'white', 'dark blue', 'standout'),
('footer', 'black', 'light gray', 'standout'),
('body', 'white', 'black'),
('help', 'white', 'black')]
def popRoster(self, nickname):
w = urwid.Edit(nickname)
self.roster.append(w)
def setup_views(self):
# main interface
# header bauen
headertxt = urwid.Text('Gajim 0.11.1 :: online with account
[EMAIL PROTECTED] :: 21:30', align='left')
headertxt = urwid.AttrWrap(headertxt, 'header')
# footer bauen
footertxt = urwid.Text('STATUS - Press "ALT+q" to exit or "h"
for help', align='center')
footertxt = urwid.AttrWrap(footertxt, 'footer')
# body bauen
roster = urwid.ListBox(urwid.SimpleListWalker(self.roster))
accounts =
urwid.ListBox(urwid.SimpleListWalker([urwid.Edit(('body', 'Accounts\n'))]))
body = urwid.Columns([roster, accounts], 2, 'roster')
# frame bauen
topframe = urwid.Frame(body, headertxt, footertxt)
# help overlay message
# FIXME: overlay funktioniert ned.
help = urwid.Text('Help\n----\n"h"\t ... this help
screen\n"ESC"\t ... exit this help screen\n"ALT+q"\t ... exit the programm',
align='center')
help = urwid.AttrWrap(help, 'help')
help = urwid.Overlay(help, topframe, 'center', None, 'middle',
None)
#help = urwid.Overlay(help, topframe, 'center', 1, 'middle',
None)
return topframe, help
def main(self):
self.roster = []
a = urwid.Edit('a')
b = urwid.Edit('b')
self.roster.append(a)
self.roster.append(b)
self.ui = urwid.curses_display.Screen()
self.ui.register_palette(self.palette)
self.view, self.help_view = self.setup_views()
self.ui.run_wrapper(self.run)
def run(self):
size = self.ui.get_cols_rows()
canvas = self.view.render(size)
self.ui.draw_screen(size, canvas)
while True:
canvas = self.view.render(size, focus=True)
self.ui.draw_screen(size, canvas)
keys = self.ui.get_input()
if 'meta q' in keys:
break
for k in keys:
if k == 'window resize':
size = self.ui.get_cols_rows()
continue
elif k == 'h':
canvas = self.help_view.render(size)
self.ui.draw_screen(size, canvas)
while True:
canvas =
self.help_view.render(size)
self.ui.draw_screen(size,
canvas)
keys = self.ui.get_input()
if 'esc' in keys:
break
for k in keys:
if k == 'window resize':
size =
self.ui.get_cols_rows()
elif k == 'x':
print 'x'
break
elif k == 'r':
self.popRoster('r')
self.view, self.help_view =
self.setup_views()
elif k == 'a':
self.popRoster('a')
self.view, self.help_view =
self.setup_views()
def main():
Gajimnox().main()
if '__main__' == __name__:
main()
pgpME6jKT4YIM.pgp
Description: PGP signature
_______________________________________________ Urwid mailing list [email protected] http://lists.excess.org/mailman/listinfo/urwid
