Curses C API¶
curses 為擴充模組公開了一個小型的 C 介面。使用者必須包含標頭檔py_curses.h(此檔案不會由Python.h 預設包含),並且必須觸發import_curses() 以填充 (populate)PyCurses_API,通常是作為模組初始化函式的一部分。
警告
Neither the C API nor the pure Pythoncurses module are compatiblewith subinterpreters.
- import_curses()¶
引入 curses C API。呼叫此巨集不需要寫分號。
On success, populate the
PyCurses_APIpointer.On failure, set
PyCurses_APIto NULL and set an exception.The caller must check if an error occurred viaPyErr_Occurred():import_curses();// 建議要寫分號但非必要if(PyErr_Occurred()){/* 清理 */}
- void**PyCurses_API¶
Dynamically allocated object containing the curses C API.This variable is only available once
import_cursessucceeds.PyCurses_API[0]corresponds toPyCursesWindow_Type.PyCurses_API[1]、PyCurses_API[2]和PyCurses_API[3]是指向 型別為int(*)(void)的謂詞函式 (predicate functions) 的指標。When called, these predicates return whether
curses.setupterm(),curses.initscr(), andcurses.start_color()have been calledrespectively.See also the convenience macros
PyCursesSetupTermCalled,PyCursesInitialised, andPyCursesInitialisedColor.備註
The number of entries in this structure is subject to changes.Consider using
PyCurses_API_pointersto check ifnew fields are available or not.
- PyCurses_API_pointers¶
The number of accessible fields (
4) inPyCurses_API.This number is incremented whenever new fields are added.
- PyTypeObjectPyCursesWindow_Type¶
Theheap type corresponding to
curses.window.
- intPyCursesWindow_Check(PyObject*op)¶
如果op 是
curses.window實例則回傳 true,否則回傳 false。
The following macros are convenience macros expanding into C statements.In particular, they can only be used asmacro; ormacro, but notmacro() ormacro();.
- PyCursesSetupTermCalled¶
如果已呼叫
curses.setupterm(),則為巨集檢查。巨集展開大致相當於:
{typedefint(*predicate_t)(void);predicate_twas_setupterm_called=(predicate_t)PyCurses_API[1];if(!was_setupterm_called()){returnNULL;}}
- PyCursesInitialised¶
如果已呼叫
curses.initscr(),則為巨集檢查。巨集展開大致相當於:
{typedefint(*predicate_t)(void);predicate_twas_initscr_called=(predicate_t)PyCurses_API[2];if(!was_initscr_called()){returnNULL;}}
- PyCursesInitialisedColor¶
如果已呼叫
curses.start_color(),則為巨集檢查。巨集展開大致相當於:
{typedefint(*predicate_t)(void);predicate_twas_start_color_called=(predicate_t)PyCurses_API[3];if(!was_start_color_called()){returnNULL;}}
內部資料¶
以下物件由 C API 所公開,但應視為僅供內部使用。
- PyCurses_CAPSULE_NAME¶
Name of the curses capsule to pass to
PyCapsule_Import().僅供內部使用。請改用
import_curses。