首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Curses中derwin()-object中的.addstr()出现奇怪的错误

Python Curses中derwin()-object中的.addstr()出现奇怪的错误
EN

Stack Overflow用户
提问于 2013-03-28 21:39:15
回答 2查看 435关注 0票数 0

我正在尝试将curses中的一个窗口分割成几个子窗口(使用derwin())。

代码创建了两个子窗口,我可以添加一个字符串;第一个函数没有问题。第二个几乎完全相同,但是当我尝试使用addstr()添加一个字符串时,它会给我一个错误

代码语言:javascript
复制
class Window(GUI):
'''
Window-object
'''

def __init__(self, y_max , x_max, y_pos , x_pos, Target, screen):
    self.Win_Count = 0
    self.y_pos = y_pos
    self.x_pos = x_pos
    self.y_max = y_max
    self.x_max = x_max
    self.parent = screen 
    self.Target = Target

    #Window-Objects
    self.Win = self.create_win_parent(y_pos)
    self.Name_Win = self.create_name_win(self.Win)
    self.IP_Win = self.create_ip_win(self.Win)

def create_win_parent(self, y_pos):
    y_size = 1
    x_size = self.x_max - self.x_pos
    new_win_obj = self.parent.derwin(y_size, x_size, self.y_pos, 0)
    self.Win_Count += 1
    return new_win_obj

def create_name_win(self, Win_Obj):
    x = Win_Obj.derwin(1,40, 0,0)
    x.box()
    x.addstr(0,5," CUSTOMER NAME ")
    return x

def create_ip_win(self, Win_Obj):
    x = Win_Obj.derwin(1,15, 0,41)
    x.box()
    x.addstr(0,5," IP-ADDRESS ")
    return x

我得到了一个模糊的错误:

代码语言:javascript
复制
    Traceback (most recent call last):
  File "./2pollng.py", line 229, in <module>
    wrapper(main)                    # Enter the main loop
  File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
    return func(stdscr, *args, **kwds)
  File "./2pollng.py", line 222, in main
    Main_App.Run(screen)
  File "./2pollng.py", line 106, in Run
    self.Create_Win(self.Inv.index(e), e)
  File "./2pollng.py", line 90, in Create_Win
    Win_Obj = Window(self.y_max, self.x_max, y_pos, x_pos, Target_x, self.screen)
  File "./2pollng.py", line 141, in __init__
    self.IP_Win = self.create_ip_win(self.Win)
  File "./2pollng.py", line 160, in create_ip_win
    x.addstr(0,5," IPADDRESS ")
_curses.error: addstr() returned ERR
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 21:04:03

代码语言:javascript
复制
def create_ip_win(self, Win_Obj):
    x = Win_Obj.derwin(1,15, 0,41)
    x.box()
    x.addstr(0,5," IP-ADDRESS ")
    return x

在此函数中,Win_Obj.derwin(1,15, 0,41)显示x-pos应介于0和14之间。而在代码addstr(0,5," IP-ADDRESS ")中,x从5开始,字符串" IP-ADDRESS "的长度大于(15-5)。所以你得到了错误。

票数 2
EN

Stack Overflow用户

发布于 2013-05-13 22:07:03

不太确定细节,但它(如解释器所示)与字符串有关,并且它们在我创建的子窗口中没有足够的空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15683382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档