本文整理汇总了Python中curses.KEY_PPAGE属性的典型用法代码示例。如果您正苦于以下问题:Python curses.KEY_PPAGE属性的具体用法?Python curses.KEY_PPAGE怎么用?Python curses.KEY_PPAGE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类curses
的用法示例。
在下文中一共展示了curses.KEY_PPAGE属性的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setUp
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def setUp(self):
self.mock_curses = mock.patch(
"memory_analyzer.frontend.memanz_curses.curses"
).start()
self.addCleanup(self.mock_curses.stop)
self.mock_curses.LINES = 2
self.mock_curses.COLS = 100
self.mock_curses.KEY_DOWN = curses.KEY_DOWN
self.mock_curses.KEY_UP = curses.KEY_UP
self.mock_curses.KEY_PPAGE = curses.KEY_PPAGE
self.mock_curses.KEY_NPAGE = curses.KEY_NPAGE
self.mock_curses.KEY_RIGHT = curses.KEY_RIGHT
self.mock_curses.KEY_LEFT = curses.KEY_LEFT
self.statusbarstr = " | Navigate with arrows or wasd | Press 'q' to exit"
self.pages = [["Page1", 10, 1024], ["Page2", 90, 100]]
self.titles = ["Analysis of 1234", "Snapshot Differences"]
self.win = memanz_curses.Window(self.mock_curses, self.pages, self.titles)
示例2: get_keyboard_codes
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def get_keyboard_codes():
"""get_keyboard_codes() -> dict
Returns dictionary of (code, name) pairs for curses keyboard constant
values and their mnemonic name. Such as key ``260``, with the value of
its identity, ``KEY_LEFT``. These are derived from the attributes by the
same of the curses module, with the following exceptions:
* ``KEY_DELETE`` in place of ``KEY_DC``
* ``KEY_INSERT`` in place of ``KEY_IC``
* ``KEY_PGUP`` in place of ``KEY_PPAGE``
* ``KEY_PGDOWN`` in place of ``KEY_NPAGE``
* ``KEY_ESCAPE`` in place of ``KEY_EXIT``
* ``KEY_SUP`` in place of ``KEY_SR``
* ``KEY_SDOWN`` in place of ``KEY_SF``
"""
keycodes = OrderedDict(get_curses_keycodes())
keycodes.update(CURSES_KEYCODE_OVERRIDE_MIXIN)
# invert dictionary (key, values) => (values, key), preferring the
# last-most inserted value ('KEY_DELETE' over 'KEY_DC').
return dict(zip(keycodes.values(), keycodes.keys()))
示例3: testRunUIScrollTallOutputPageDownUp
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def testRunUIScrollTallOutputPageDownUp(self):
"""Scroll tall output with PageDown and PageUp."""
# Use PageDown and PageUp to scroll back and forth a little before exiting.
ui = MockCursesUI(
40,
80,
command_sequence=[string_to_codes("babble\n"), [curses.KEY_NPAGE] * 2 +
[curses.KEY_PPAGE] + self._EXIT])
ui.register_command_handler("babble", self._babble, "")
ui.run_ui()
# Screen output/scrolling should have happened exactly once.
self.assertEqual(4, len(ui.unwrapped_outputs))
self.assertEqual(4, len(ui.wrapped_outputs))
self.assertEqual(4, len(ui.scroll_messages))
# Before scrolling.
self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[0].lines)
self.assertEqual(["bar"] * 60, ui.wrapped_outputs[0].lines[:60])
# Initial scroll: At the top.
self.assertIn("Scroll (PgDn): 0.00%", ui.scroll_messages[0])
self.assertIn("Mouse:", ui.scroll_messages[0])
# After 1st scrolling (PageDown).
# The screen output shouldn't have changed. Only the viewport should.
self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[0].lines)
self.assertEqual(["bar"] * 60, ui.wrapped_outputs[0].lines[:60])
self.assertIn("Scroll (PgDn/PgUp): 1.69%", ui.scroll_messages[1])
self.assertIn("Mouse:", ui.scroll_messages[1])
# After 2nd scrolling (PageDown).
self.assertIn("Scroll (PgDn/PgUp): 3.39%", ui.scroll_messages[2])
self.assertIn("Mouse:", ui.scroll_messages[2])
# After 3rd scrolling (PageUp).
self.assertIn("Scroll (PgDn/PgUp): 1.69%", ui.scroll_messages[3])
self.assertIn("Mouse:", ui.scroll_messages[3])
示例4: get_keyboard_codes
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def get_keyboard_codes():
"""
Return mapping of keycode integer values paired by their curses key-name.
:rtype: dict
Returns dictionary of (code, name) pairs for curses keyboard constant
values and their mnemonic name. Such as key ``260``, with the value of
its identity, ``u'KEY_LEFT'``. These are derived from the attributes by
the same of the curses module, with the following exceptions:
* ``KEY_DELETE`` in place of ``KEY_DC``
* ``KEY_INSERT`` in place of ``KEY_IC``
* ``KEY_PGUP`` in place of ``KEY_PPAGE``
* ``KEY_PGDOWN`` in place of ``KEY_NPAGE``
* ``KEY_ESCAPE`` in place of ``KEY_EXIT``
* ``KEY_SUP`` in place of ``KEY_SR``
* ``KEY_SDOWN`` in place of ``KEY_SF``
This function is the inverse of :func:`get_curses_keycodes`. With the
given override "mixins" listed above, the keycode for the delete key will
map to our imaginary ``KEY_DELETE`` mnemonic, effectively erasing the
phrase ``KEY_DC`` from our code vocabulary for anyone that wishes to use
the return value to determine the key-name by keycode.
"""
keycodes = OrderedDict(get_curses_keycodes())
keycodes.update(CURSES_KEYCODE_OVERRIDE_MIXIN)
# invert dictionary (key, values) => (values, key), preferring the
# last-most inserted value ('KEY_DELETE' over 'KEY_DC').
return dict(zip(keycodes.values(), keycodes.keys()))
示例5: set_up_handlers
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def set_up_handlers(self):
super(Pager, self).set_up_handlers()
self.handlers = {
curses.KEY_UP: self.h_scroll_line_up,
curses.KEY_LEFT: self.h_scroll_line_up,
curses.KEY_DOWN: self.h_scroll_line_down,
curses.KEY_RIGHT: self.h_scroll_line_down,
curses.KEY_NPAGE: self.h_scroll_page_down,
curses.KEY_PPAGE: self.h_scroll_page_up,
curses.KEY_HOME: self.h_show_beginning,
curses.KEY_END: self.h_show_end,
curses.ascii.NL: self.h_exit,
curses.ascii.CR: self.h_exit,
curses.ascii.SP: self.h_scroll_page_down,
curses.ascii.TAB: self.h_exit,
ord('j'): self.h_scroll_line_down,
ord('k'): self.h_scroll_line_up,
ord('x'): self.h_exit,
ord('q'): self.h_exit,
ord('g'): self.h_show_beginning,
ord('G'): self.h_show_end,
curses.ascii.ESC: self.h_exit_escape,
}
self.complex_handlers = [
]
示例6: set_up_handlers
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def set_up_handlers(self):
super(SimpleGrid, self).set_up_handlers()
self.handlers = {
curses.KEY_UP: self.h_move_line_up,
curses.KEY_LEFT: self.h_move_cell_left,
curses.KEY_DOWN: self.h_move_line_down,
curses.KEY_RIGHT: self.h_move_cell_right,
"k": self.h_move_line_up,
"h": self.h_move_cell_left,
"j": self.h_move_line_down,
"l": self.h_move_cell_right,
curses.KEY_NPAGE: self.h_move_page_down,
curses.KEY_PPAGE: self.h_move_page_up,
curses.KEY_HOME: self.h_show_beginning,
curses.KEY_END: self.h_show_end,
ord('g'): self.h_show_beginning,
ord('G'): self.h_show_end,
curses.ascii.TAB: self.h_exit,
curses.KEY_BTAB: self.h_exit_up,
'^P': self.h_exit_up,
'^N': self.h_exit_down,
#curses.ascii.NL: self.h_exit,
#curses.ascii.SP: self.h_exit,
#ord('x'): self.h_exit,
ord('q'): self.h_exit,
curses.ascii.ESC: self.h_exit,
curses.KEY_MOUSE: self.h_exit_mouse,
}
self.complex_handlers = [
]
示例7: testRunUIScrollTallOutputPageDownUp
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def testRunUIScrollTallOutputPageDownUp(self):
"""Scroll tall output with PageDown and PageUp."""
# Use PageDown and PageUp to scroll back and forth a little before exiting.
ui = MockCursesUI(
40,
80,
command_sequence=[string_to_codes("babble\n"), [curses.KEY_NPAGE] * 2 +
[curses.KEY_PPAGE] + self._EXIT])
ui.register_command_handler("babble", self._babble, "")
ui.run_ui()
# Screen output/scrolling should have happened exactly once.
self.assertEqual(4, len(ui.unwrapped_outputs))
self.assertEqual(4, len(ui.wrapped_outputs))
self.assertEqual(4, len(ui.scroll_messages))
# Before scrolling.
self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[0].lines)
self.assertEqual(["bar"] * 60, ui.wrapped_outputs[0].lines[:60])
# Initial scroll: At the top.
self.assertIn("Scroll: 0.00%", ui.scroll_messages[0])
# After 1st scrolling (PageDown).
# The screen output shouldn't have changed. Only the viewport should.
self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[0].lines)
self.assertEqual(["bar"] * 60, ui.wrapped_outputs[0].lines[:60])
self.assertIn("Scroll: 1.69%", ui.scroll_messages[1])
# After 2nd scrolling (PageDown).
self.assertIn("Scroll: 3.39%", ui.scroll_messages[2])
# After 3rd scrolling (PageUp).
self.assertIn("Scroll: 1.69%", ui.scroll_messages[3])
示例8: scroll_up
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def scroll_up(self, user_select):
if (
user_select in [curses.KEY_UP, ord("w"), ord("k")]
and self.position != self.top
):
self.position += self.UP
elif user_select == ord("H") and self.position != self.top:
self.position = self.top
elif user_select == curses.KEY_PPAGE and self.position != self.top:
if self.position - self.height > self.top:
self.position = self.position - self.height
else:
self.position = self.top
示例9: test_user_input_attempt_to_scroll_up_off_window
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def test_user_input_attempt_to_scroll_up_off_window(self):
self.assertEqual(self.win.position, 0)
self.win.window.getch.side_effect = [self.mock_curses.KEY_UP, ord("q")]
self.win.user_input()
self.assertEqual(self.win.position, 0)
self.win.window.getch.side_effect = [self.mock_curses.KEY_PPAGE, ord("q")]
self.win.user_input()
self.assertEqual(self.win.position, 0)
示例10: kye_handling
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def kye_handling(self):
self.draw_frame()
self.scr_h, self.scr_w = self.screen.getmaxyx()
while True:
c = self.screen.getch()
if c == curses.KEY_HOME:
self.x = 1
self.y = 1
elif c == curses.KEY_NPAGE:
offset_intent = self.offset + (self.scr_h - 4)
if offset_intent < len(self.acs) - 5:
self.offset = offset_intent
elif c == curses.KEY_PPAGE:
offset_intent = self.offset - (self.scr_h - 4)
if offset_intent > 0:
self.offset = offset_intent
else:
self.offset = 0
elif c == curses.KEY_DOWN:
y_intent = self.y + 1
if y_intent < self.scr_h - 3:
self.y = y_intent
elif c == curses.KEY_UP:
y_intent = self.y - 1
if y_intent > 2:
self.y = y_intent
elif c == curses.KEY_ENTER or c == 10 or c == 13:
self.lock_icao = (self.screen.instr(self.y, 1, 6)).decode()
elif c == 27: # escape key
self.lock_icao = None
elif c == curses.KEY_F5:
self.screen.refresh()
self.draw_frame()
示例11: curses_loop
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def curses_loop(self, stdscr):
while 1:
self.redraw()
c = stdscr.getch()
if c == ord('q') or c == ord('Q'):
self.aborted = True
break
elif c == curses.KEY_UP:
self.cursor -= 1
elif c == curses.KEY_DOWN:
self.cursor += 1
# elif c == curses.KEY_PPAGE:
# elif c == curses.KEY_NPAGE:
elif c == ord(' '):
self.all_options[self.selected]["selected"] = \
not self.all_options[self.selected]["selected"]
elif c == 10:
break
# deal with interaction limits
self.check_cursor_up()
self.check_cursor_down()
# compute selected position only after dealing with limits
self.selected = self.cursor + self.offset
temp = self.get_selected()
self.selcount = len(temp)
示例12: set_up_handlers
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def set_up_handlers(self):
super(Pager, self).set_up_handlers()
self.handlers = {
curses.KEY_UP: self.h_scroll_line_up,
curses.KEY_LEFT: self.h_scroll_line_up,
curses.KEY_DOWN: self.h_scroll_line_down,
curses.KEY_RIGHT: self.h_scroll_line_down,
curses.KEY_NPAGE: self.h_scroll_page_down,
curses.KEY_PPAGE: self.h_scroll_page_up,
curses.KEY_HOME: self.h_show_beginning,
curses.KEY_END: self.h_show_end,
curses.ascii.NL: self.h_exit,
curses.ascii.CR: self.h_exit,
curses.ascii.SP: self.h_scroll_page_down,
curses.ascii.TAB: self.h_exit,
ord('j'): self.h_scroll_line_down,
ord('k'): self.h_scroll_line_up,
ord('x'): self.h_exit,
ord('q'): self.h_exit,
ord('g'): self.h_show_beginning,
ord('G'): self.h_show_end,
curses.ascii.ESC: self.h_exit_escape,
}
self.complex_handlers = [
]
示例13: define_keys
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def define_keys(self):
self.keys = {'j': self.down,
'k': self.up,
'h': self.left,
'l': self.right,
'J': self.page_down,
'K': self.page_up,
'm': self.mark,
"'": self.goto_mark,
'L': self.page_right,
'H': self.page_left,
'q': self.quit,
'Q': self.quit,
'$': self.line_end,
'^': self.line_home,
'0': self.line_home,
'g': self.home,
'G': self.goto_row,
'|': self.goto_col,
'\n': self.show_cell,
'/': self.search,
'n': self.search_results,
'p': self.search_results_prev,
't': self.toggle_header,
'-': self.column_gap_down,
'+': self.column_gap_up,
'<': self.column_width_all_down,
'>': self.column_width_all_up,
',': self.column_width_down,
'.': self.column_width_up,
'a': self.sort_by_column_natural,
'A': self.sort_by_column_natural_reverse,
's': self.sort_by_column,
'S': self.sort_by_column_reverse,
'y': self.yank_cell,
'r': self.reload,
'c': self.toggle_column_width,
'C': self.set_current_column_width,
']': self.skip_to_row_change,
'[': self.skip_to_row_change_reverse,
'}': self.skip_to_col_change,
'{': self.skip_to_col_change_reverse,
'?': self.help,
curses.KEY_F1: self.help,
curses.KEY_UP: self.up,
curses.KEY_DOWN: self.down,
curses.KEY_LEFT: self.left,
curses.KEY_RIGHT: self.right,
curses.KEY_HOME: self.line_home,
curses.KEY_END: self.line_end,
curses.KEY_PPAGE: self.page_up,
curses.KEY_NPAGE: self.page_down,
curses.KEY_IC: self.mark,
curses.KEY_DC: self.goto_mark,
curses.KEY_ENTER: self.show_cell,
KEY_CTRL('a'): self.line_home,
KEY_CTRL('e'): self.line_end,
}
示例14: run_loop
# 需要导入模块: import curses [as 别名]
# 或者: from curses import KEY_PPAGE [as 别名]
def run_loop(self):
debug_info = None
while True:
self.draw(debug_info=debug_info)
key = self.screen.getch()
try:
key_string = chr(key)
except ValueError:
continue
if self.debug_mode and key > 0:
# when stretching windows, key = -1
debug_info = {'key': key}
if key in KEYS_ESCAPE:
sys.exit(0)
if key in KEYS_ENTER:
if not self.environments:
continue
return self.get_selected()
if re.search(r'[A-Za-z0-9\s\-_]', key_string):
self.query += key_string
self.expanded = 0
for n, environment in enumerate(self.environments):
if environment.envname.startswith(self.query):
self.index = n
break
elif key == curses.KEY_PPAGE:
self.move_up(5)
elif key == curses.KEY_NPAGE:
self.move_down(5)
elif key in KEYS_UP:
self.move_up(1)
elif key in KEYS_DOWN:
self.move_down(1)
elif key in KEYS_HOME:
self.move_top()
elif key in KEYS_END:
self.move_bottom()
elif key in KEYS_CLEAR:
self.clear_query()
elif key in KEYS_RIGHT:
self.expand_next()
elif key in KEYS_LEFT:
self.expand_prev()
elif key in KEYS_BACKSPACE:
self.query = self.query[:-1]