Python curses 模块,newpad() 实例源码

我们从Python开源项目中,提取了以下19个代码示例,用于说明如何使用curses.newpad()

项目:sciibo    作者:fdev    | 项目源码 | 文件源码
def __init__(self, y, x, h, w):
        self.y = y
        self.x = x
        self.h = h
        self.w = w

        # Prevent rendering
        self.hidden = False

        # Clip children
        self.clipped = False

        # One row higher so last character is writable
        self.pad = curses.newpad(h + 1, w + 1)

        self.children = []
项目:rogueinabox    作者:rogueinabox    | 项目源码 | 文件源码
def _start_ui(self, stdscr):
        """TODO docs"""
        rogue_height = 26
        rogue_width = 84
        # using a pad instead of the default win, it's safer
        self.stdscr = curses.newpad(rogue_height, rogue_width)
        self.stdscr.nodelay(True)
        curses.curs_set(False)
        self.draw_from_rogue()
        minlogsize = 4
        if curses.LINES - 1 >= rogue_height + minlogsize:
            # there's enough space to show the logs
            self.logpad = curses.newpad(curses.LINES - 1, curses.COLS - 1)
        while True:
            if self.timer_callback:
                self.timer_callback()
                time.sleep(self.sleep_time)
            if self.keypress_callback:
                try:
                    key = self.stdscr.getkey()
                    event = Event()
                    event.char = key
                    self.keypress_callback(event)
                except curses.error:
                    pass
项目:gdax-trader    作者:mcardillo55    | 项目源码 | 文件源码
def __init__(self, enable=True):
        self.enable = enable
        if not self.enable:
            return
        self.logger = logging.getLogger('trader-logger')
        self.stdscr = curses.initscr()
        self.pad = curses.newpad(23, 120)
        self.order_pad = curses.newpad(10, 120)
        self.timestamp = ""
        self.last_order_update = 0
        curses.start_color()
        curses.noecho()
        curses.cbreak()
        curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN)
        curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_RED)
        self.stdscr.keypad(1)
        self.pad.addstr(1, 0, "Waiting for a trade...")
项目:toot    作者:ihabunek    | 项目源码 | 文件源码
def _wrapped_run(self, stdscr):
        self.left_width = 60
        self.right_width = curses.COLS - self.left_width

        # Setup windows
        self.top = curses.newwin(2, curses.COLS, 0, 0)
        self.left = curses.newpad(curses.LINES * 2, self.left_width)
        self.right = curses.newwin(curses.LINES - 4, self.right_width, 2, self.left_width)
        self.bottom = curses.newwin(2, curses.COLS, curses.LINES - 2, 0)

        Color.setup_palette()

        # Load some data and redraw
        self.fetch_next()
        self.selected = 0
        self.full_redraw()

        self.loop()
项目:defuse_division    作者:lelandbatey    | 项目源码 | 文件源码
def __init__(self, stdscr):
        self.stdscr = stdscr
        self.par_height, self.par_width = stdscr.getmaxyx()
        self.pad = curses.newpad(self.par_height + 200, self.par_width + 200)
        self.pad.keypad(1)
项目:cyberbot    作者:RickGray    | 项目源码 | 文件源码
def init_scr(self):
        self.stdscr = curses.initscr()
        curses.noecho()
        curses.curs_set(0)

        self.stdscr_size = self.stdscr.getmaxyx()
        self.task_total = count_file_linenum(self.config.seedfile)

        self.pgsscr_size = (self.config.proc_num + 2, 40)
        self.pgsscr = curses.newpad(*self.pgsscr_size)
        self.cntscr_size = (4, 40)
        self.cntscr = curses.newpad(*self.cntscr_size)
        self.optscr_size = (18, 80)
        self.optscr = curses.newpad(*self.optscr_size)
项目:cursed    作者:johannestaas    | 项目源码 | 文件源码
def _cw_setup_run(cls, app, window):
        cls.RUNNING = True
        cls.APP = app
        height, width = window.getmaxyx()
        if width < cls.WIDTH:
            raise CursedSizeError('terminal width is %d and window width is '
                                  '%d' % (width, cls.WIDTH))
        if height < cls.HEIGHT:
            raise CursedSizeError('terminal height is %d and window height '
                                  'is %d' % (height, cls.HEIGHT))
        if cls.PAD:
            cls.WINDOW = curses.newpad(cls.PAD_HEIGHT, cls.PAD_WIDTH)
        else:
            cls.WINDOW = window.subwin(cls.HEIGHT, cls.WIDTH, cls.Y, cls.X)
        if cls.SCROLL:
            cls.WINDOW.scrollok(True)
            cls.WINDOW.idlok(1)
        if cls.BORDERED:
            cls.WINDOW.border()
        for attr in cls._CW_WINDOW_FUNCS:
            cls._cw_set_window_func(attr)
        for attr in cls._CW_SCREEN_FUNCS:
            cls._cw_set_screen_func(attr)
        for attr in cls._CW_WINDOW_SWAP_FUNCS:
            cls._cw_swap_window_func(attr)
        for attr in cls._CW_SCREEN_SWAP_FUNCS:
            cls._cw_swap_screen_func(attr)
项目:AsciiDots-Java    作者:LousyLynx    | 项目源码 | 文件源码
def __init__(self, ticks, silent, debug, compat_debug, debug_lines, autostep_debug, head):
        super().__init__()

        self.ticks = ticks
        self.silent = silent
        self.debug = debug
        self.compat_debug = compat_debug
        self.debug_lines = debug_lines
        self.autostep_debug = autostep_debug
        self.head = head

        self.tick_number = 0

        self.output_count = 0

        if self.debug and not self.compat_debug:
            self.logging_loc = 0
            self.logging_x = 1

            self.stdscr = curses.initscr()

            curses.start_color()

            curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
            curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK)
            curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK)
            curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_BLACK)

            curses.noecho()

            curses.curs_set(False)

            self.win_program = curses.newwin(self.debug_lines, curses.COLS - 1, 0, 0)

            self.logging_pad = curses.newpad(1000, curses.COLS - 1)

            def signal_handler(signal, frame):
                    self.on_finish()
                    sys.exit(0)

            signal.signal(signal.SIGINT, signal_handler)
项目:sciibo    作者:fdev    | 项目源码 | 文件源码
def resize(self, h, w):
        """Resize the drawable and create a new pad."""
        self.h = h
        self.w = w
        self.pad = curses.newpad(h + 1, w + 1)
项目:Otop    作者:fcbarclo    | 项目源码 | 文件源码
def WinConnInfo(self):
                y = self.WinOtopData[self.ID_PAD_CI][1]
                x = self.WinOtopData[self.ID_PAD_CI][2]
                nlines = self.WinOtopData[self.ID_PAD_CI][3]
                hsize = len(self.Vconndata_head)

        Ltmp=(self.ID_PAD_CI,y,x,nlines,hsize)
        self.padrefreshcoord.append(Ltmp)

        try:
                        self.connIpad = curses.newpad(y+nlines+3,x+hsize+2)
                        self.connIwinbox = curses.newwin( y+nlines+2, hsize+3, y, x)
        except Exception as err:
            self.connIpad = -1
            self.WinPrintError("WinConnInfo curses Error:"+str(err) )
        finally:
                        try:
                if not self.WinCheckThreadAlive(self.idthconn):
                    self.idthconn = threading.Thread(target=self._WinconninfoshowTH,name='conninfoshowTH')
                    self.idthconn.setDaemon(True)
                    self.thConfig.append((self.ID_PAD_CI,1))
                else:
                                        self.lockvideo.acquire()
                                        self.connIpad.addstr(1,1,self.Vconndata_head,self.CYANONBLACK)
                                        self.connIpad.addstr(2,2,"waiting refresh... ",self.GREENONBLACK)
                                        self.connIpad.refresh(1,0,y+1,x+1,y+nlines+1,x+hsize)
                                        self.lockvideo.release()

                        except Exception as err:
                                self.connIpad = -10
                self.WinPrintError("WinConnInfo thrd Error:"+str(err) )
项目:Otop    作者:fcbarclo    | 项目源码 | 文件源码
def Windb(self):
                y = self.WinOtopData[self.ID_PAD_DB][1]
                x = self.WinOtopData[self.ID_PAD_DB][2]
                nlines = self.WinOtopData[self.ID_PAD_DB][3]
                hsize = len(self.Vdbdata_head)

        Ltmp=(self.ID_PAD_DB,y,x,nlines,hsize)
        self.padrefreshcoord.append(Ltmp)

                try:
                        self.dbpad = curses.newpad(y+nlines+3,x+hsize+2)
                        self.dbwinbox = curses.newwin( y+nlines+2, hsize+3, y, x)
                except Exception as err:
                        self.dbpad =-1
            self.WinPrintError("Windb curses Error:"+str(err) )
                finally:
                        try:
                if not self.WinCheckThreadAlive(self.idthdb):
                    self.idthdb = threading.Thread(target=self._WindbshowTH,name='dbshowTH')
                    self.idthdb.setDaemon(True)
                    self.thConfig.append((self.ID_PAD_DB,1))
                else:
                                        self.lockvideo.acquire()
                                    self.dbpad.addstr(1,1,self.Vdbdata_head,self.CYANONBLACK)
                                        self.dbpad.addstr(2,2,"waiting refresh... ",self.GREENONBLACK)
                                        self.dbpad.refresh(1,0,y+1,x+1,y+nlines+1,x+hsize)
                                        self.lockvideo.release()

                        except Exception as err:
                                self.dbpad =-10
                self.WinPrintError("Windb thrd Error:"+str(err) )
项目:Otop    作者:fcbarclo    | 项目源码 | 文件源码
def Wininst(self):
                y = self.WinOtopData[self.ID_PAD_INST][1]
                x = self.WinOtopData[self.ID_PAD_INST][2]
                nlines = self.WinOtopData[self.ID_PAD_INST][3]
                hsize = len(self.Vinstdata_head)
        self.instdata_head = 'Instance info'

        Ltmp=(self.ID_PAD_INST,y,x,nlines,hsize)
        self.padrefreshcoord.append(Ltmp)

                try:
                        self.instpad = curses.newpad(y+nlines+3,x+hsize+2)
                        self.instwinbox = curses.newwin( nlines+3, hsize+3, y, x)
                except Exception as err:
                        self.instpad =-1
            self.WinPrintError("Wininst curses Error:"+str(err) )
                finally:
                        try:
                if not self.WinCheckThreadAlive(self.idthinst):
                    self.idthinst = threading.Thread(target=self._WininstshowTH,name='instshowTH')
                    self.idthinst.setDaemon(True)
                    self.thConfig.append((self.ID_PAD_INST,1))
                else:
                                        self.lockvideo.acquire()
                                    self.instpad.addstr(1,1,self.Vinstdata_head,self.CYANONBLACK)
                                        self.instpad.addstr(2,2,"waiting refresh... ",self.GREENONBLACK)
                                        self.instpad.refresh(1,0,y+1,x+1,y+nlines+1,x+hsize)
                                        self.lockvideo.release()
                        except Exception as err:
                                self.instpad =-10
                self.WinPrintError("Wininst thrd Error:"+str(err) )
项目:Otop    作者:fcbarclo    | 项目源码 | 文件源码
def Wintbs(self):
                y = self.WinOtopData[self.ID_PAD_TBS][1]
                x = self.WinOtopData[self.ID_PAD_TBS][2]
                nlines = self.WinOtopData[self.ID_PAD_TBS][3]
                hsize = len(self.Vtbsdata_head)
        self.tbs_head = 'Tablespace - max five used'

                Ltmp=(self.ID_PAD_TBS,y,x,nlines,hsize)
                self.padrefreshcoord.append(Ltmp)

                try:
                        self.tbspad = curses.newpad(y+nlines+3,x+hsize+2)
                        self.tbswinbox = curses.newwin( nlines+3, hsize+3, y, x)
                except Exception as err:
                        self.tbspad =-1
                        self.WinPrintError("Wintbs curses Error:"+str(err) )
                finally:
                        try:
                                if not self.WinCheckThreadAlive(self.idthtbs):
                                        self.idthtbs = threading.Thread(target=self._WintbsshowTH,name='tbsTH')
                                        self.idthtbs.setDaemon(True)
                                        self.thConfig.append((self.ID_PAD_TBS,1))
                                else:
                                        self.lockvideo.acquire()
                                        self.tbspad.addstr(1,1,self.Vtbsdata_head,self.CYANONBLACK)
                                        self.tbspad.addstr(2,2,"waiting refresh..." ,self.GREENONBLACK)
                                        self.tbspad.refresh(1,0,y+1,x+1,y+nlines+1,x+hsize)
                                        self.lockvideo.release()

                        except Exception as err:
                                self.tbspad =-10
                                self.WinPrintError("Wintbs thrd Error:"+str(err) )
项目:Otop    作者:fcbarclo    | 项目源码 | 文件源码
def Winsess(self):
                y = self.WinOtopData[self.ID_PAD_SESS][1]
                x = self.WinOtopData[self.ID_PAD_SESS][2]
                nlines = self.WinOtopData[self.ID_PAD_SESS][3]
                hsize = len(self.Vsessdata_head)
        self.session_head = 'Active sessions (no sys/system)'
        virtual_v_size = nlines*self.MAX_SESS_ROWS + y + 3

                Ltmp=(self.ID_PAD_SESS,y,x,nlines,hsize)
                self.padrefreshcoord.append(Ltmp)

        try: 
            self.sesspad = curses.newpad(virtual_v_size,x+hsize+2)   
            self.sesswinbox = curses.newwin( nlines+3, hsize+3, y, x)
                except Exception as err:
            self.sesspad =-1
            self.WinPrintError("Winsess curses Error:"+str(err) )
        finally:
            try:
                if not self.WinCheckThreadAlive(self.idthsess):
                    self.idthsess = threading.Thread(target=self._WinsessshowTH,name='sessshowTH')
                    self.idthsess.setDaemon(True)
                    self.thConfig.append((self.ID_PAD_SESS,1))
                else:
                                        self.lockvideo.acquire()
                                        self.sesspad.addstr(1,1,self.Vsessdata_head,self.CYANONBLACK)
                                        self.sesspad.addstr(2,2,"waiting refresh... ",self.GREENONBLACK)
                                        self.sesspad.refresh(1,0,y+1,x+1,y+nlines+1,x+hsize)
                                        self.lockvideo.release()

            except Exception as err:
                self.sesspad =-10
                self.WinPrintError("Winsess thrd Error:"+str(err) )
项目:pysk    作者:ph1l    | 项目源码 | 文件源码
def update_pad_size(self, pad_y):
        """check pad size and update pad if neccesary"""
        if self.pad_y != pad_y:
            self.pad_y = pad_y
            self.pad = curses.newpad(self.pad_y, self.max_x)
项目:pysk    作者:ph1l    | 项目源码 | 文件源码
def term_resized(self, new_y, new_x):
        """handle terminal resize"""
        self.pad = curses.newpad(new_y, new_x)
        self.max_y = new_y
        self.max_x = new_x
项目:pysk    作者:ph1l    | 项目源码 | 文件源码
def term_resized(self, new_y, new_x):
        """handle terminal resize"""
        self.pad = curses.newpad(self.row_count, new_x)
        self.max_y = new_y
        self.max_x = new_x
项目:jack    作者:jack-cli-cd-ripper    | 项目源码 | 文件源码
def enable():
    # Initialize curses
    global stdscr
    global status_pad
    global usage_win
    global curses_sighandler
    global map_track_num
    global enabled
    global pad_height, pad_width
    global had_special
    global extra_lines

    if enabled:
        return

    had_special = 0
    extra_lines = 2  # top + bottom status lines
    if jack.display.discname:
        extra_lines = extra_lines + 1
    stdscr = initscr()
    enabled = 1
    jack.term.sig_winch_cache = signal.signal(signal.SIGWINCH, signal.SIG_IGN)
    # Turn off echoing of keys, and enter cbreak mode,
    # where no buffering is performed on keyboard input
    noecho()
    cbreak()

    # In keypad mode, escape sequences for special keys
    # (like the cursor keys) will be interpreted and
    # a special value like KEY_LEFT will be returned
    stdscr.keypad(1)
    stdscr.leaveok(0)

    # build the pad
    pad_height, pad_width = len(
        jack.ripstuff.all_tracks_todo_sorted), jack.ripstuff.max_name_len + 72
    status_pad = newpad(pad_height, pad_width)
    usage_win = newwin(usage_win_height, usage_win_width, 0, 0)
    map_track_num = {}
    for i in range(len(jack.ripstuff.all_tracks_todo_sorted)):
        map_track_num[jack.ripstuff.all_tracks_todo_sorted[i][NUM]] = i

    sig_winch_handler(None, None)
项目:asciidots    作者:aaronduino    | 项目源码 | 文件源码
def __init__(self, env, ticks, silent, debug, compat_debug, debug_lines, autostep_debug, output_limit):
        """

        :param dots.environment.Env env: The env of the interpreter
        :param int ticks: The max number of ticks for the program
        :param bool silent: True to turn off all outputs
        :param bool debug: True to show the execution of the program
        :param bool compat_debug: True to show the debug with only builtin functions
        :param int debug_lines: The number of lines to show the debug
        :param float autostep_debug: The timebetween automatic ticks. 0 disables the auto ticks.
        :param int output_limit: The max number of outputs for the program
        """
        super().__init__(env)

        # if it is zero or false, we don't want to stop
        self.ticks_left = ticks or float('inf')
        self.outputs_left = output_limit or float('inf')

        self.silent = silent
        self.debug = debug
        self.compat_debug = compat_debug
        self.debug_lines = debug_lines
        self.debug_cols = terminalsize.get_terminal_size()[0] - 1
        self.autostep_debug = autostep_debug

        self.compat_logging_buffer = ''
        self.compat_logging_buffer_lines = terminal_lines - debug_lines - 1

        self.first_tick = True

        if self.debug and not self.compat_debug:
            self.logging_loc = 0
            self.logging_x = 1

            self.stdscr = curses.initscr()

            curses.start_color()

            curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
            curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK)
            curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK)
            curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_BLACK)

            curses.noecho()

            # hides the cursor
            curses.curs_set(False)

            # defining the two main parts of the screen: the view of the program
            self.win_program = curses.newwin(self.debug_lines, curses.COLS, 0, 0)
            # and pad for the output of the prog
            self.logging_pad = curses.newpad(1000, curses.COLS - 1)

            def signal_handler(signal, frame):
                self.on_finish()
                sys.exit(0)

            signal.signal(signal.SIGINT, signal_handler)