curses --- Xử lý thiết bị đầu cuối để hiển thị ô ký tự

Source code: Lib/curses


Mô-đun curses cung cấp giao diện cho thư viện lời nguyền, tiêu chuẩn thực tế để xử lý thiết bị đầu cuối di động nâng cao.

Mặc dù lời nguyền được sử dụng rộng rãi nhất trong môi trường Unix, nhưng các phiên bản cũng có sẵn cho Windows, DOS và có thể cả các hệ thống khác. Mô-đun mở rộng này được thiết kế để phù hợp với API của ncurses, một thư viện mã nguồn mở về lời nguyền được lưu trữ trên Linux và các biến thể BSD của Unix.

sẵn có: not Android, not iOS, not WASI.

Mô-đun này không được hỗ trợ trên mobile platforms hoặc WebAssembly platforms.

Đây là một optional module. Nếu nó bị thiếu trong bản sao CPython của bạn, hãy tìm tài liệu từ nhà phân phối của bạn (nghĩa là bất kỳ ai đã cung cấp Python cho bạn). Nếu bạn là nhà phân phối, hãy xem Yêu cầu đối với các mô-đun tùy chọn.

sẵn có: Unix.

Ghi chú

Bất cứ khi nào tài liệu đề cập đến character, nó có thể được chỉ định dưới dạng số nguyên, chuỗi Unicode một ký tự hoặc chuỗi byte một byte.

Bất cứ khi nào tài liệu đề cập đến character string, nó có thể được chỉ định dưới dạng chuỗi Unicode hoặc chuỗi byte.

Xem thêm

Mô-đun curses.ascii

Các tiện ích để làm việc với các ký tự ASCII, bất kể cài đặt ngôn ngữ của bạn.

Mô-đun curses.panel

Một tiện ích mở rộng ngăn xếp bảng điều khiển giúp tăng thêm chiều sâu cho các cửa sổ đáng nguyền rủa.

Mô-đun curses.textpad

Tiện ích văn bản có thể chỉnh sửa dành cho những lời nguyền hỗ trợ các ràng buộc giống như Emacs-.

Lời nguyền lập trình với Python

Tài liệu hướng dẫn sử dụng lời nguyền với Python của Andrew Kuchling và Eric Raymond.

Chức năng

Mô-đun curses xác định ngoại lệ sau:

exception curses.error

Ngoại lệ nảy sinh khi hàm thư viện lời nguyền trả về lỗi.

Ghi chú

Bất cứ khi nào các đối số x hoặc y cho một hàm hoặc một phương thức là tùy chọn, chúng sẽ mặc định ở vị trí con trỏ hiện tại. Bất cứ khi nào attr là tùy chọn, nó sẽ mặc định là A_NORMAL.

Mô-đun curses xác định các chức năng sau:

curses.assume_default_colors(fg, bg, /)

Cho phép sử dụng các giá trị mặc định cho màu sắc trên các thiết bị đầu cuối hỗ trợ tính năng này. Sử dụng điều này để hỗ trợ tính minh bạch trong ứng dụng của bạn.

  • Gán màu nền trước/nền mặc định của thiết bị đầu cuối cho số màu -1. Vì vậy, init_pair(x, COLOR_RED, -1) sẽ khởi tạo cặp x có màu đỏ trên nền mặc định và init_pair(x, -1, COLOR_BLUE) sẽ khởi tạo cặp x làm nền trước mặc định trên màu xanh lam.

  • Thay đổi định nghĩa của cặp màu 0 thành (fg, bg).

Added in version 3.14.

curses.baudrate()

Trả về tốc độ đầu ra của thiết bị đầu cuối theo bit trên giây. Trên trình mô phỏng thiết bị đầu cuối phần mềm, nó sẽ có giá trị cao cố định. Bao gồm vì lý do lịch sử; trước đây, nó được sử dụng để ghi các vòng lặp đầu ra nhằm trì hoãn thời gian và đôi khi để thay đổi giao diện tùy thuộc vào tốc độ đường truyền.

curses.beep()

Phát ra một âm thanh chú ý ngắn.

curses.can_change_color()

Trả về True hoặc False, tùy thuộc vào việc người lập trình có thể thay đổi màu sắc được hiển thị bởi thiết bị đầu cuối hay không.

curses.cbreak()

Vào chế độ cbreak. Trong chế độ cbreak (đôi khi được gọi là chế độ "hiếm"), tính năng đệm dòng tty thông thường bị tắt và các ký tự có sẵn để đọc từng ký tự một. Tuy nhiên, không giống như chế độ thô, các ký tự đặc biệt (ngắt, thoát, tạm dừng và điều khiển luồng) vẫn giữ nguyên tác dụng của chúng đối với trình điều khiển tty và chương trình gọi. Gọi raw() đầu tiên sau đó cbreak() rời khỏi thiết bị đầu cuối ở chế độ cbreak.

curses.color_content(color_number)

Trả về cường độ của các thành phần màu đỏ, lục và lam (RGB) trong màu color_number, màu này phải nằm trong khoảng từ 0 đến COLORS - 1. Trả về 3 bộ, chứa các giá trị R,G,B cho màu đã cho, nằm trong khoảng từ 0 (không có thành phần) đến 1000 (số lượng thành phần tối đa).

curses.color_pair(pair_number)

Trả về giá trị thuộc tính để hiển thị văn bản theo cặp màu đã chỉ định. Chỉ hỗ trợ 256 cặp màu đầu tiên. Giá trị thuộc tính này có thể được kết hợp với A_STANDOUT, A_REVERSE và các thuộc tính A_* khác. pair_number() là bản sao của chức năng này.

curses.curs_set(visibility)

Đặt trạng thái con trỏ. visibility có thể được đặt thành 0, 1 hoặc 2, cho chế độ ẩn, bình thường hoặc rất hiển thị. Nếu thiết bị đầu cuối hỗ trợ khả năng hiển thị được yêu cầu, hãy trả về trạng thái con trỏ trước đó; nếu không thì đưa ra một ngoại lệ. Trên nhiều thiết bị đầu cuối, chế độ "hiển thị" là con trỏ gạch dưới và chế độ "rất hiển thị" là con trỏ khối.

curses.def_prog_mode()

Lưu chế độ đầu cuối hiện tại làm chế độ "chương trình", chế độ khi chương trình đang chạy đang sử dụng lời nguyền. (Bản sao của nó là chế độ "shell", khi chương trình không bị nguyền rủa.) Các lệnh gọi tiếp theo tới reset_prog_mode() sẽ khôi phục chế độ này.

curses.def_shell_mode()

Lưu chế độ đầu cuối hiện tại làm chế độ "shell", chế độ khi chương trình đang chạy không sử dụng lời nguyền. (Bản sao của nó là chế độ "chương trình", khi chương trình đang sử dụng khả năng nguyền rủa.) Các cuộc gọi tiếp theo tới reset_shell_mode() sẽ khôi phục chế độ này.

curses.delay_output(ms)

Chèn tạm dừng ms mili giây vào đầu ra.

curses.doupdate()

Cập nhật màn hình vật lý. Thư viện lời nguyền giữ hai cấu trúc dữ liệu, một cấu trúc biểu thị nội dung màn hình vật lý hiện tại và màn hình ảo biểu thị trạng thái mong muốn tiếp theo. Mặt đất doupdate() cập nhật màn hình vật lý để phù hợp với màn hình ảo.

Màn hình ảo có thể được cập nhật bằng lệnh gọi noutrefresh() sau khi các thao tác ghi như addstr() được thực hiện trên cửa sổ. Cuộc gọi refresh() bình thường chỉ đơn giản là noutrefresh() theo sau là doupdate(); nếu bạn phải cập nhật nhiều cửa sổ, bạn có thể tăng tốc hiệu suất và có thể giảm hiện tượng nhấp nháy màn hình bằng cách thực hiện lệnh gọi noutrefresh() trên tất cả các cửa sổ, sau đó là một lệnh gọi doupdate().

curses.echo()

Vào chế độ tiếng vang. Ở chế độ tiếng vang, mỗi ký tự đầu vào sẽ được lặp lại trên màn hình khi nó được nhập.

curses.endwin()

Khởi tạo lại thư viện và đưa thiết bị đầu cuối về trạng thái bình thường.

curses.erasechar()

Trả về ký tự xóa hiện tại của người dùng dưới dạng đối tượng byte một byte. Trong hệ điều hành Unix, đây là thuộc tính của tty kiểm soát của chương trình lời nguyền và không được thiết lập bởi chính thư viện lời nguyền.

curses.filter()

Thủ tục filter(), nếu được sử dụng, phải được gọi trước khi initscr() được gọi. Hiệu quả là, trong các cuộc gọi đó, LINES được đặt thành 1; các khả năng clear, cup, cud, cud1, cuu1, cuu, vpa bị vô hiệu hóa; và chuỗi home được đặt thành giá trị cr. Hiệu ứng là con trỏ bị giới hạn trong dòng hiện tại và các cập nhật trên màn hình cũng vậy. Điều này có thể được sử dụng để cho phép chỉnh sửa dòng ký tự tại một thời điểm mà không cần chạm vào phần còn lại của màn hình.

curses.flash()

Nhấp nháy màn hình. Nghĩa là, thay đổi nó thành video đảo ngược và sau đó thay đổi lại sau một khoảng thời gian ngắn. Một số người thích tín hiệu như 'chuông có thể nhìn thấy' hơn là tín hiệu chú ý bằng âm thanh do beep() tạo ra.

curses.flushinp()

Xóa tất cả các bộ đệm đầu vào. Thao tác này sẽ loại bỏ mọi kiểu chữ đã được người dùng nhập và chưa được chương trình xử lý.

curses.getmouse()

Sau khi getch() trả về KEY_MOUSE để báo hiệu một sự kiện chuột, phương thức này sẽ được gọi để truy xuất sự kiện chuột đã xếp hàng đợi, được biểu thị dưới dạng (id, x, y, z, bstate) 5 bộ. id là giá trị ID dùng để phân biệt nhiều thiết bị và x, y, z là tọa độ của sự kiện. (z hiện không được sử dụng.) bstate là một giá trị số nguyên có các bit sẽ được đặt để biểu thị loại sự kiện và sẽ là bit OR của một hoặc nhiều hằng số sau, trong đó n là số nút từ 1 đến 5: BUTTONn_PRESSED, BUTTONn_RELEASED, BUTTONn_CLICKED, BUTTONn_DOUBLE_CLICKED, BUTTONn_TRIPLE_CLICKED, BUTTON_SHIFT, BUTTON_CTRL, BUTTON_ALT.

Thay đổi trong phiên bản 3.10: Các hằng số BUTTON5_* hiện được hiển thị nếu chúng được cung cấp bởi thư viện lời nguyền cơ bản.

curses.getsyx()

Trả về tọa độ hiện tại của con trỏ màn hình ảo dưới dạng bộ dữ liệu (y, x). Nếu leaveok hiện là True thì trả về (-1, -1).

curses.getwin(file)

Đọc dữ liệu liên quan đến cửa sổ được lưu trữ trong tệp bằng lệnh gọi window.putwin() trước đó. Sau đó, quy trình này sẽ tạo và khởi tạo một cửa sổ mới bằng cách sử dụng dữ liệu đó, trả về đối tượng cửa sổ mới.

curses.has_colors()

Trả về True nếu thiết bị đầu cuối có thể hiển thị màu sắc; nếu không, hãy trả về False.

curses.has_extended_color_support()

Trả về True nếu mô-đun hỗ trợ màu mở rộng; nếu không, hãy trả về False. Hỗ trợ màu mở rộng cho phép hơn 256 cặp màu cho các thiết bị đầu cuối hỗ trợ hơn 16 màu (ví dụ: xterm-256color).

Hỗ trợ màu mở rộng yêu cầu ncurses phiên bản 6.1 trở lên.

Added in version 3.10.

curses.has_ic()

Trả về True nếu thiết bị đầu cuối có khả năng chèn và xóa ký tự. Chức năng này chỉ được đưa vào vì lý do lịch sử vì tất cả các trình mô phỏng thiết bị đầu cuối phần mềm hiện đại đều có khả năng như vậy.

curses.has_il()

Trả về True nếu thiết bị đầu cuối có khả năng chèn và xóa dòng hoặc có thể mô phỏng chúng bằng cách sử dụng các vùng cuộn. Chức năng này chỉ được đưa vào vì lý do lịch sử vì tất cả các trình mô phỏng thiết bị đầu cuối phần mềm hiện đại đều có khả năng như vậy.

curses.has_key(ch)

Lấy giá trị khóa ch và trả về True nếu loại thiết bị đầu cuối hiện tại nhận ra khóa có giá trị đó.

curses.halfdelay(tenths)

Được sử dụng cho chế độ nửa trễ, tương tự như chế độ cbreak ở chỗ các ký tự do người dùng nhập sẽ có sẵn ngay lập tức cho chương trình. Tuy nhiên, sau khi chặn tenths một phần mười giây, hãy đưa ra một ngoại lệ nếu chưa gõ gì. Giá trị của tenths phải là một số nằm trong khoảng từ 1 đến 255. Sử dụng nocbreak() để thoát khỏi chế độ nửa trễ.

curses.init_color(color_number, r, g, b)

Thay đổi định nghĩa của một màu, lấy số màu cần thay đổi theo sau là ba giá trị RGB (đối với số lượng thành phần màu đỏ, lục và lam). Giá trị của color_number phải nằm trong khoảng từ 0 đến COLORS - 1. Mỗi r, g, b phải có giá trị nằm trong khoảng từ 0 đến 1000. Khi sử dụng init_color(), tất cả các lần xuất hiện của màu đó trên màn hình sẽ ngay lập tức chuyển sang định nghĩa mới. Chức năng này không hoạt động trên hầu hết các thiết bị đầu cuối; nó chỉ hoạt động nếu can_change_color() trả về True.

curses.init_pair(pair_number, fg, bg)

Thay đổi định nghĩa của một cặp màu. Phải có ba đối số: số cặp màu được thay đổi, số màu nền trước và số màu nền. Giá trị của pair_number phải nằm trong khoảng từ 1 đến COLOR_PAIRS - 1 (cặp màu 0 chỉ có thể được thay đổi bởi use_default_colors()assume_default_colors()). Giá trị của các đối số fgbg phải nằm trong khoảng từ 0 đến COLORS - 1 hoặc sau khi gọi use_default_colors() hoặc assume_default_colors(), -1. Nếu cặp màu đã được khởi tạo trước đó, màn hình sẽ được làm mới và tất cả các lần xuất hiện của cặp màu đó sẽ được thay đổi thành định nghĩa mới.

curses.initscr()

Khởi tạo thư viện. Trả về đối tượng window đại diện cho toàn bộ màn hình.

Ghi chú

Nếu xảy ra lỗi khi mở thiết bị đầu cuối, thư viện lời nguyền cơ bản có thể khiến trình thông dịch thoát ra.

curses.is_term_resized(nlines, ncols)

Trả về True nếu resize_term() sửa đổi cấu trúc cửa sổ, False nếu không.

curses.isendwin()

Trả về True nếu endwin() đã được gọi (nghĩa là thư viện lời nguyền đã được hủy khởi tạo).

curses.keyname(k)

Trả về tên của khóa được đánh số k dưới dạng đối tượng byte. Tên của khóa tạo ký tự ASCII có thể in được là ký tự của khóa. Tên của tổ hợp phím điều khiển là một đối tượng byte hai byte bao gồm một dấu mũ (b'^') theo sau là ký tự ASCII có thể in được tương ứng. Tên của tổ hợp phím alt (128--255) là một đối tượng byte bao gồm tiền tố b'M-' theo sau là tên của ký tự ASCII tương ứng.

curses.killchar()

Trả về ký tự ngắt dòng hiện tại của người dùng dưới dạng đối tượng byte một byte. Trong hệ điều hành Unix, đây là thuộc tính của tty kiểm soát của chương trình lời nguyền và không được thiết lập bởi chính thư viện lời nguyền.

curses.longname()

Trả về một đối tượng byte chứa trường tên dài terminfo mô tả thiết bị đầu cuối hiện tại. Độ dài tối đa của mô tả dài dòng là 128 ký tự. Nó chỉ được xác định sau lệnh gọi tới initscr().

curses.meta(flag)

Nếu flagTrue, hãy cho phép nhập các ký tự 8 bit. Nếu flagFalse, chỉ cho phép ký tự 7 bit.

curses.mouseinterval(interval)

Đặt thời gian tối đa tính bằng mili giây có thể trôi qua giữa các sự kiện nhấn và nhả để chúng được nhận dạng là một lần nhấp và trả về giá trị khoảng thời gian trước đó. Giá trị mặc định là 200 mili giây hoặc 1/5 giây.

curses.mousemask(mousemask)

Đặt các sự kiện chuột cần được báo cáo và trả về một bộ (availmask, oldmask). availmask cho biết sự kiện chuột nào được chỉ định có thể được báo cáo; khi thất bại hoàn toàn, nó trả về 0. oldmask là giá trị trước đó của mặt nạ sự kiện chuột của cửa sổ đã cho. Nếu chức năng này không bao giờ được gọi thì sẽ không có sự kiện chuột nào được báo cáo.

curses.napms(ms)

Ngủ trong ms mili giây.

curses.newpad(nlines, ncols)

Tạo và trả về một con trỏ tới cấu trúc dữ liệu pad mới với số dòng và cột đã cho. Trả về một miếng đệm làm đối tượng cửa sổ.

Một miếng đệm giống như một cửa sổ, ngoại trừ việc nó không bị giới hạn bởi kích thước màn hình và không nhất thiết phải liên kết với một phần cụ thể của màn hình. Có thể sử dụng miếng đệm khi cần một cửa sổ lớn và mỗi lần chỉ một phần của cửa sổ xuất hiện trên màn hình. Tự động làm mới các miếng đệm (chẳng hạn như khi cuộn hoặc lặp lại đầu vào) không xảy ra. Các phương thức refresh()noutrefresh() của một pad yêu cầu 6 đối số để chỉ định phần của pad sẽ được hiển thị và vị trí trên màn hình sẽ được sử dụng để hiển thị. Các đối số là pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol; các đối số p đề cập đến góc trên bên trái của vùng đệm sẽ được hiển thị và các đối số s xác định một hộp cắt trên màn hình trong đó vùng đệm sẽ được hiển thị.

curses.newwin(nlines, ncols)
curses.newwin(nlines, ncols, begin_y, begin_x)

Trả về một window mới, có góc trên bên trái là (begin_y, begin_x) và có chiều cao/chiều rộng là nlines/ncols.

Theo mặc định, cửa sổ sẽ kéo dài từ vị trí được chỉ định đến góc dưới bên phải màn hình.

curses.nl()

Vào chế độ dòng mới. Chế độ này dịch phím quay lại thành dòng mới trên đầu vào và dịch dòng mới thành dòng trả về và nguồn cấp dữ liệu trên đầu ra. Chế độ dòng mới ban đầu được bật.

curses.nocbreak()

Thoát khỏi chế độ cbreak. Trở lại chế độ "nấu chín" bình thường với tính năng đệm dòng.

curses.noecho()

Rời khỏi chế độ tiếng vang. Tính năng lặp lại các ký tự đầu vào bị tắt.

curses.nonl()

Rời khỏi chế độ dòng mới. Vô hiệu hóa dịch trả về thành dòng mới trên đầu vào và tắt dịch ở mức độ thấp của dòng mới thành dòng mới/trả về đầu ra (nhưng điều này không thay đổi hành vi của addch('\n'), luôn thực hiện tương đương với trả về và nguồn cấp dữ liệu dòng trên màn hình ảo). Khi tắt dịch, những lời nguyền đôi khi có thể tăng tốc độ chuyển động theo chiều dọc một chút; Ngoài ra, nó sẽ có thể phát hiện phím quay lại khi nhập.

curses.noqiflush()

Khi sử dụng quy trình noqiflush(), việc xóa hàng đợi đầu vào và đầu ra thông thường được liên kết với các ký tự INTR, QUITSUSP sẽ không được thực hiện. Bạn có thể muốn gọi noqiflush() trong trình xử lý tín hiệu nếu bạn muốn đầu ra tiếp tục như thể không xảy ra gián đoạn sau khi trình xử lý thoát.

curses.noraw()

Rời khỏi chế độ thô. Trở lại chế độ "nấu chín" bình thường với tính năng đệm dòng.

curses.pair_content(pair_number)

Trả về một bộ (fg, bg) chứa các màu cho cặp màu được yêu cầu. Giá trị của pair_number phải nằm trong khoảng từ 0 đến COLOR_PAIRS - 1.

curses.pair_number(attr)

Trả về số cặp màu được đặt theo giá trị thuộc tính attr. color_pair() là bản sao của chức năng này.

curses.putp(str)

Tương đương với tputs(str, 1, putchar); phát ra giá trị của khả năng terminfo được chỉ định cho thiết bị đầu cuối hiện tại. Lưu ý rằng đầu ra của putp() luôn ở mức đầu ra tiêu chuẩn.

curses.qiflush([flag])

Nếu flagFalse, hiệu ứng cũng giống như gọi noqiflush(). Nếu flagTrue hoặc không có đối số nào được cung cấp thì hàng đợi sẽ bị xóa khi các ký tự điều khiển này được đọc.

curses.raw()

Vào chế độ thô. Ở chế độ thô, bộ đệm dòng thông thường và xử lý các phím ngắt, thoát, tạm dừng và điều khiển luồng bị tắt; các ký tự được trình bày để nguyền rủa từng hàm đầu vào.

curses.reset_prog_mode()

Khôi phục thiết bị đầu cuối về chế độ "chương trình", như đã được def_prog_mode() lưu trước đó.

curses.reset_shell_mode()

Khôi phục thiết bị đầu cuối về chế độ "shell", như đã được def_shell_mode() lưu trước đó.

curses.resetty()

Khôi phục trạng thái của các chế độ đầu cuối về trạng thái như ở lần gọi cuối cùng tới savetty().

curses.resize_term(nlines, ncols)

Chức năng phụ trợ được resizeterm() sử dụng, thực hiện hầu hết công việc; khi thay đổi kích thước cửa sổ, resize_term() sẽ điền vào chỗ trống những vùng được mở rộng. Ứng dụng gọi điện sẽ điền vào các khu vực này bằng dữ liệu thích hợp. Hàm resize_term() cố gắng thay đổi kích thước tất cả các cửa sổ. Tuy nhiên, do quy ước gọi của các miếng đệm, không thể thay đổi kích thước của các miếng đệm này nếu không có sự tương tác bổ sung với ứng dụng.

curses.resizeterm(nlines, ncols)

Thay đổi kích thước cửa sổ tiêu chuẩn và hiện tại theo kích thước đã chỉ định, đồng thời điều chỉnh dữ liệu sổ sách kế toán khác được sử dụng bởi thư viện lời nguyền ghi lại kích thước cửa sổ (đặc biệt là trình xử lý SIGWINCH).

curses.savetty()

Lưu trạng thái hiện tại của các chế độ đầu cuối vào bộ đệm, resetty() có thể sử dụng được.

curses.get_escdelay()

Truy xuất giá trị được đặt bởi set_escdelay().

Added in version 3.9.

curses.set_escdelay(ms)

Đặt số mili giây chờ sau khi đọc ký tự thoát, để phân biệt giữa ký tự thoát riêng lẻ được nhập trên bàn phím với chuỗi thoát được gửi bởi con trỏ và phím chức năng.

Added in version 3.9.

curses.get_tabsize()

Truy xuất giá trị được đặt bởi set_tabsize().

Added in version 3.9.

curses.set_tabsize(size)

Đặt số cột được thư viện lời nguyền sử dụng khi chuyển đổi ký tự tab thành dấu cách khi nó thêm tab vào cửa sổ.

Added in version 3.9.

curses.setsyx(y, x)

Đặt con trỏ màn hình ảo thành y, x. Nếu yx đều là -1 thì leaveok được đặt là True.

curses.setupterm(term=None, fd=-1)

Khởi tạo thiết bị đầu cuối. term là một chuỗi cung cấp tên thiết bị đầu cuối hoặc None; nếu bỏ qua hoặc None thì giá trị của biến môi trường TERM sẽ được sử dụng. fd là bộ mô tả tệp mà bất kỳ chuỗi khởi tạo nào sẽ được gửi tới; nếu không được cung cấp hoặc -1, bộ mô tả tệp cho sys.stdout sẽ được sử dụng.

curses.start_color()

Phải được gọi nếu lập trình viên muốn sử dụng màu sắc và trước khi bất kỳ quy trình thao tác màu nào khác được gọi. Cách tốt nhất là gọi thủ tục này ngay sau initscr().

start_color() khởi tạo tám màu cơ bản (đen, đỏ, lục, vàng, xanh lam, đỏ tươi, lục lam và trắng) và hai biến toàn cục trong mô-đun curses, COLORSCOLOR_PAIRS, chứa số lượng màu và cặp màu tối đa mà thiết bị đầu cuối có thể hỗ trợ. Nó cũng khôi phục màu sắc trên thiết bị đầu cuối về giá trị ban đầu khi thiết bị đầu cuối vừa được bật.

curses.termattrs()

Trả về logic OR của tất cả các thuộc tính video được thiết bị đầu cuối hỗ trợ. Thông tin này hữu ích khi chương trình nguyền rủa cần kiểm soát hoàn toàn giao diện của màn hình.

curses.termname()

Trả về giá trị của biến môi trường TERM, dưới dạng đối tượng byte, được cắt ngắn còn 14 ký tự.

curses.tigetflag(capname)

Trả về giá trị của khả năng Boolean tương ứng với tên khả năng terminfo capname dưới dạng số nguyên. Trả về giá trị -1 nếu capname không phải là khả năng Boolean hoặc 0 nếu nó bị hủy hoặc không có trong mô tả thiết bị đầu cuối.

curses.tigetnum(capname)

Trả về giá trị của khả năng số tương ứng với tên khả năng terminfo capname dưới dạng số nguyên. Trả về giá trị -2 nếu capname không phải là khả năng số hoặc -1 nếu nó bị hủy hoặc không có trong mô tả thiết bị đầu cuối.

curses.tigetstr(capname)

Trả về giá trị của khả năng chuỗi tương ứng với tên khả năng terminfo capname dưới dạng đối tượng byte. Trả về None nếu capname không phải là "khả năng chuỗi" terminfo hoặc bị hủy hoặc không có trong mô tả thiết bị đầu cuối.

curses.tparm(str[, ...])

Khởi tạo đối tượng byte str với các tham số được cung cấp, trong đó str phải là một chuỗi được tham số hóa thu được từ cơ sở dữ liệu terminfo. Ví dụ. tparm(tigetstr("cup"), 5, 3) có thể dẫn đến b'\033[6;4H', kết quả chính xác tùy thuộc vào loại thiết bị đầu cuối.

curses.typeahead(fd)

Chỉ định rằng bộ mô tả tệp fd sẽ được sử dụng để kiểm tra kiểu chữ. Nếu fd-1 thì việc kiểm tra kiểu chữ sẽ không được thực hiện.

Thư viện lời nguyền thực hiện "tối ưu hóa ngắt dòng" bằng cách tìm kiếm kiểu chữ định kỳ trong khi cập nhật màn hình. Nếu tìm thấy đầu vào và nó đến từ một tty, bản cập nhật hiện tại sẽ bị hoãn lại cho đến khi làm mới hoặc doupdate được gọi lại, cho phép phản hồi nhanh hơn với các lệnh được nhập trước. Hàm này cho phép chỉ định một bộ mô tả tệp khác để kiểm tra kiểu chữ.

curses.unctrl(ch)

Trả về đối tượng bytes là biểu diễn có thể in được của ký tự ch. Ký tự điều khiển được biểu diễn dưới dạng dấu mũ, theo sau là ký tự, ví dụ như b'^C'. Các ký tự in được để nguyên như cũ.

curses.ungetch(ch)

Đẩy ch để getch() tiếp theo sẽ trả lại.

Ghi chú

Chỉ có thể đẩy một ch trước khi getch() được gọi.

curses.update_lines_cols()

Cập nhật các biến mô-đun LINESCOLS. Hữu ích cho việc phát hiện thay đổi kích thước màn hình thủ công.

Added in version 3.5.

curses.unget_wch(ch)

Đẩy ch để get_wch() tiếp theo sẽ trả lại.

Ghi chú

Chỉ có thể đẩy một ch trước khi get_wch() được gọi.

Added in version 3.3.

curses.ungetmouse(id, x, y, z, bstate)

Đẩy sự kiện KEY_MOUSE vào hàng đợi đầu vào, liên kết dữ liệu trạng thái đã cho với nó.

curses.use_env(flag)

Nếu được sử dụng, hàm này phải được gọi trước khi gọi initscr() hoặc newterm. Khi flagFalse, các giá trị của dòng và cột được chỉ định trong cơ sở dữ liệu terminfo sẽ được sử dụng, ngay cả khi các biến môi trường LINESCOLUMNS (được sử dụng theo mặc định) được đặt hoặc nếu các lời nguyền đang chạy trong một cửa sổ (trong trường hợp đó, hành vi mặc định sẽ là sử dụng kích thước cửa sổ nếu LINESCOLUMNS không được đặt).

curses.use_default_colors()

Tương đương với assume_default_colors(-1, -1).

curses.wrapper(func, /, *args, **kwargs)

Khởi tạo các lời nguyền và gọi một đối tượng có thể gọi khác, func, đây sẽ là phần còn lại của ứng dụng sử dụng lời nguyền của bạn. Nếu ứng dụng đưa ra một ngoại lệ, chức năng này sẽ khôi phục thiết bị đầu cuối về trạng thái bình thường trước khi đưa ra lại ngoại lệ và tạo ra dấu vết ngược lại. Sau đó, đối tượng có thể gọi được func được truyền vào cửa sổ chính 'stdscr' làm đối số đầu tiên, theo sau là bất kỳ đối số nào khác được truyền tới wrapper(). Trước khi gọi func, wrapper() bật chế độ cbreak, tắt tiếng vang, bật bàn phím đầu cuối và khởi tạo màu nếu thiết bị đầu cuối có hỗ trợ màu. Khi thoát (dù là bình thường hay ngoại lệ), nó sẽ khôi phục chế độ nấu chín, bật tiếng vang và tắt bàn phím đầu cuối.

Đối tượng cửa sổ

class curses.window

Các đối tượng cửa sổ, được trả về bởi initscr()newwin() ở trên, có các phương thức và thuộc tính sau:

window.addch(ch[, attr])
window.addch(y, x, ch[, attr])

Vẽ ký tự ch tại (y, x) với thuộc tính attr, ghi đè bất kỳ ký tự nào được vẽ trước đó tại vị trí đó. Theo mặc định, vị trí ký tự và thuộc tính là cài đặt hiện tại cho đối tượng cửa sổ.

Ghi chú

Viết bên ngoài cửa sổ, cửa sổ phụ hoặc bảng tính sẽ tạo ra curses.error. Cố gắng ghi vào góc dưới bên phải của cửa sổ, cửa sổ phụ hoặc bảng đệm sẽ gây ra ngoại lệ sau khi ký tự được in.

window.addnstr(str, n[, attr])
window.addnstr(y, x, str, n[, attr])

Vẽ tối đa các ký tự n của chuỗi ký tự str tại (y, x) với các thuộc tính attr, ghi đè bất cứ thứ gì trước đó trên màn hình.

window.addstr(str[, attr])
window.addstr(y, x, str[, attr])

Vẽ chuỗi ký tự str tại (y, x) với các thuộc tính attr, ghi đè bất cứ thứ gì trước đó trên màn hình.

Ghi chú

  • Viết bên ngoài cửa sổ, cửa sổ phụ hoặc bảng tính sẽ tăng curses.error. Cố gắng ghi vào góc dưới bên phải của cửa sổ, cửa sổ con hoặc bảng đệm sẽ gây ra ngoại lệ sau khi chuỗi được in.

  • Zz002zz, phần phụ trợ cho mô-đun Python này, có thể gây ra SegFaults khi thay đổi kích thước cửa sổ. Điều này đã được sửa trong ncurses-6.1-20190511. Nếu bạn bị mắc kẹt với các ncurses trước đó, bạn có thể tránh kích hoạt điều này nếu bạn không gọi addstr() bằng str có nhúng dòng mới. Thay vào đó, hãy gọi addstr() riêng cho từng dòng.

window.attroff(attr)

Xóa thuộc tính attr khỏi bộ "nền" được áp dụng cho tất cả ghi vào cửa sổ hiện tại.

window.attron(attr)

Thêm thuộc tính attr vào bộ "nền" được áp dụng cho tất cả thao tác ghi vào cửa sổ hiện tại.

window.attrset(attr)

Đặt bộ thuộc tính "nền" thành attr. Bộ này ban đầu là 0 (không có thuộc tính).

window.bkgd(ch[, attr])

Đặt thuộc tính nền của cửa sổ thành ký tự ch, với thuộc tính attr. Sau đó, thay đổi được áp dụng cho mọi vị trí ký tự trong cửa sổ đó:

  • Thuộc tính của mọi ký tự trong cửa sổ được thay đổi thành thuộc tính nền mới.

  • Bất cứ nơi nào ký tự nền cũ xuất hiện, nó sẽ được thay đổi thành ký tự nền mới.

window.bkgdset(ch[, attr])

Đặt nền của cửa sổ. Nền của cửa sổ bao gồm một ký tự và bất kỳ tổ hợp thuộc tính nào. Phần thuộc tính của nền được kết hợp (OR'ed) với tất cả các ký tự không trống được ghi vào cửa sổ. Cả phần ký tự và thuộc tính của nền đều được kết hợp với các ký tự trống. Nền trở thành một thuộc tính của ký tự và di chuyển cùng với ký tự thông qua bất kỳ thao tác cuộn và chèn/xóa dòng/ký tự nào.

window.border([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])

Vẽ một đường viền xung quanh các cạnh của cửa sổ. Mỗi tham số chỉ định ký tự được sử dụng cho một phần cụ thể của đường viền; xem bảng dưới đây để biết thêm chi tiết.

Ghi chú

Giá trị 0 cho bất kỳ tham số nào sẽ khiến ký tự mặc định được sử dụng cho tham số đó. Thông số từ khóa not có thể được sử dụng. Các giá trị mặc định được liệt kê trong bảng này:

tham số

Mô tả

Giá trị mặc định

ls

Bên trái

ACS_VLINE

rs

Bên phải

ACS_VLINE

ts

hàng đầu

ACS_HLINE

bs

Dưới cùng

ACS_HLINE

tl

Góc trên bên trái

ACS_ULCORNER

tr

Góc trên bên phải

ACS_URCORNER

bl

Góc dưới bên trái

ACS_LLCORNER

br

Góc dưới bên phải

ACS_LRCORNER

window.box([vertch, horch])

Tương tự như border(), nhưng cả lsrs đều là vertch và cả tsbs đều là horch. Các ký tự góc mặc định luôn được chức năng này sử dụng.

window.chgat(attr)
window.chgat(num, attr)
window.chgat(y, x, attr)
window.chgat(y, x, num, attr)

Đặt thuộc tính của các ký tự num tại vị trí con trỏ hiện tại hoặc tại vị trí (y, x) nếu được cung cấp. Nếu num không được cung cấp hoặc là -1, thuộc tính sẽ được đặt trên tất cả các ký tự ở cuối dòng. Hàm này di chuyển con trỏ đến vị trí (y, x) nếu được cung cấp. Dòng đã thay đổi sẽ được chạm bằng phương pháp touchline() để nội dung sẽ được hiển thị lại trong lần làm mới cửa sổ tiếp theo.

window.clear()

Giống như erase(), nhưng cũng khiến toàn bộ cửa sổ được sơn lại trong lần gọi tiếp theo tới refresh().

window.clearok(flag)

Nếu flagTrue, lệnh gọi tiếp theo tới refresh() sẽ xóa hoàn toàn cửa sổ.

window.clrtobot()

Xóa từ con trỏ đến cuối cửa sổ: tất cả các dòng bên dưới con trỏ sẽ bị xóa và sau đó thao tác tương đương với clrtoeol() được thực hiện.

window.clrtoeol()

Xóa từ con trỏ đến cuối dòng.

window.cursyncup()

Cập nhật vị trí con trỏ hiện tại của tất cả các tổ tiên của cửa sổ để phản ánh vị trí con trỏ hiện tại của cửa sổ.

window.delch([y, x])

Xóa ký tự bất kỳ tại (y, x).

window.deleteln()

Xóa dòng dưới con trỏ. Tất cả các dòng sau được di chuyển lên trên một dòng.

window.derwin(begin_y, begin_x)
window.derwin(nlines, ncols, begin_y, begin_x)

Viết tắt của "cửa sổ phái sinh", derwin() cũng giống như cách gọi subwin(), ngoại trừ việc begin_ybegin_x liên quan đến nguồn gốc của cửa sổ, thay vì liên quan đến toàn bộ màn hình. Trả về đối tượng cửa sổ cho cửa sổ dẫn xuất.

window.echochar(ch[, attr])

Thêm ký tự ch với thuộc tính attr và gọi ngay refresh() trên cửa sổ.

window.enclose(y, x)

Kiểm tra xem cặp tọa độ ô ký tự tương đối với màn hình đã cho có được bao quanh bởi cửa sổ nhất định hay không, trả về True hoặc False. Nó rất hữu ích để xác định tập hợp con nào của cửa sổ màn hình bao quanh vị trí của sự kiện chuột.

Thay đổi trong phiên bản 3.10: Trước đây nó trả về 1 hoặc 0 thay vì True hoặc False.

window.encoding

Mã hóa dùng để mã hóa các đối số của phương thức (chuỗi và ký tự Unicode). Thuộc tính mã hóa được kế thừa từ cửa sổ chính khi cửa sổ con được tạo, ví dụ như với window.subwin(). Theo mặc định, mã hóa miền địa phương hiện tại được sử dụng (xem locale.getencoding()).

Added in version 3.3.

window.erase()

Xóa cửa sổ.

window.getbegyx()

Trả về một bộ (y, x) tọa độ của góc trên bên trái.

window.getbkgd()

Trả về cặp ký tự/thuộc tính nền hiện tại của cửa sổ đã cho.

window.getch([y, x])

Nhận một nhân vật. Lưu ý rằng số nguyên được trả về not phải nằm trong phạm vi ASCII: các phím chức năng, phím trên bàn phím, v.v. được biểu thị bằng các số cao hơn 255. Ở chế độ không chậm trễ, hãy trả về -1 nếu không có đầu vào, nếu không hãy đợi cho đến khi một phím được nhấn.

window.get_wch([y, x])

Có được một nhân vật rộng. Trả về một ký tự cho hầu hết các phím hoặc số nguyên cho các phím chức năng, phím bàn phím và các phím đặc biệt khác. Ở chế độ không chậm trễ, hãy đưa ra một ngoại lệ nếu không có đầu vào.

Added in version 3.3.

window.getkey([y, x])

Nhận một ký tự, trả về một chuỗi thay vì số nguyên, như getch() đã làm. Các phím chức năng, phím bàn phím và các phím đặc biệt khác trả về một chuỗi nhiều byte chứa tên khóa. Ở chế độ không chậm trễ, hãy đưa ra một ngoại lệ nếu không có đầu vào.

window.getmaxyx()

Trả về một bộ (y, x) về chiều cao và chiều rộng của cửa sổ.

window.getparyx()

Trả về tọa độ đầu của cửa sổ này so với cửa sổ chính của nó dưới dạng bộ dữ liệu (y, x). Trả về (-1, -1) nếu cửa sổ này không có cha.

window.getstr()
window.getstr(n)
window.getstr(y, x)
window.getstr(y, x, n)

Đọc một đối tượng byte từ người dùng, với khả năng chỉnh sửa dòng nguyên thủy. Giá trị tối đa cho n là 2047.

Thay đổi trong phiên bản 3.14: Giá trị tối đa cho n đã tăng từ 1023 lên 2047.

window.getyx()

Trả về một bộ (y, x) của vị trí con trỏ hiện tại so với góc trên bên trái của cửa sổ.

window.hline(ch, n)
window.hline(y, x, ch, n)

Hiển thị một dòng ngang bắt đầu từ (y, x) với độ dài n gồm ký tự ch.

window.idcok(flag)

Nếu flagFalse, thì lời nguyền không còn cân nhắc việc sử dụng tính năng chèn/xóa ký tự phần cứng của thiết bị đầu cuối; nếu flagTrue, tính năng chèn và xóa ký tự sẽ được bật. Khi lời nguyền được khởi tạo lần đầu tiên, tính năng chèn/xóa ký tự được bật theo mặc định.

window.idlok(flag)

Nếu flagTrue, curses sẽ thử và sử dụng các phương tiện chỉnh sửa dòng phần cứng. Nếu không, tính năng chèn/xóa dòng sẽ bị vô hiệu hóa.

window.immedok(flag)

Nếu flagTrue, mọi thay đổi trong hình ảnh cửa sổ sẽ tự động làm mới cửa sổ; bạn không còn phải tự gọi refresh() nữa. Tuy nhiên, nó có thể làm giảm hiệu suất đáng kể do liên tục gọi tới wrefresh. Tùy chọn này bị tắt theo mặc định.

window.inch([y, x])

Trả lại ký tự tại vị trí đã cho trong cửa sổ. 8 bit dưới cùng là ký tự thích hợp và các bit trên là thuộc tính.

window.insch(ch[, attr])
window.insch(y, x, ch[, attr])

Vẽ ký tự ch tại (y, x) với thuộc tính attr, di chuyển dòng từ vị trí x sang phải một ký tự.

window.insdelln(nlines)

Chèn các dòng nlines vào cửa sổ được chỉ định phía trên dòng hiện tại. Dòng dưới cùng của nlines bị mất. Đối với nlines âm, hãy xóa các dòng nlines bắt đầu bằng dòng dưới con trỏ và di chuyển các dòng còn lại lên trên. Các dòng nlines phía dưới bị xóa. Vị trí con trỏ hiện tại vẫn giữ nguyên.

window.insertln()

Chèn một dòng trống dưới con trỏ. Tất cả các dòng sau được di chuyển xuống một dòng.

window.insnstr(str, n[, attr])
window.insnstr(y, x, str, n[, attr])

Chèn một chuỗi ký tự (bao nhiêu ký tự sẽ vừa trên dòng) trước ký tự dưới con trỏ, tối đa các ký tự n. Nếu n bằng 0 hoặc âm thì toàn bộ chuỗi sẽ được chèn vào. Tất cả các ký tự ở bên phải con trỏ được dịch chuyển sang phải, với các ký tự ngoài cùng bên phải trên dòng bị mất. Vị trí con trỏ không thay đổi (sau khi di chuyển đến y, x, nếu được chỉ định).

window.insstr(str[, attr])
window.insstr(y, x, str[, attr])

Chèn một chuỗi ký tự (bao nhiêu ký tự sẽ vừa trên dòng) trước ký tự bên dưới con trỏ. Tất cả các ký tự ở bên phải con trỏ được dịch chuyển sang phải, với các ký tự ngoài cùng bên phải trên dòng bị mất. Vị trí con trỏ không thay đổi (sau khi di chuyển đến y, x, nếu được chỉ định).

window.instr([n])
window.instr(y, x[, n])

Trả về đối tượng byte của các ký tự, được trích xuất từ cửa sổ bắt đầu từ vị trí con trỏ hiện tại hoặc tại y, x nếu được chỉ định. Các thuộc tính bị loại bỏ khỏi các ký tự. Nếu n được chỉ định, instr() trả về một chuỗi dài tối đa n ký tự (không bao gồm NUL ở cuối). Giá trị tối đa cho n là 2047.

Thay đổi trong phiên bản 3.14: Giá trị tối đa cho n đã tăng từ 1023 lên 2047.

window.is_linetouched(line)

Trả về True nếu dòng được chỉ định đã được sửa đổi kể từ lần gọi cuối cùng tới refresh(); nếu không thì trả về False. Đưa ra ngoại lệ curses.error nếu line không hợp lệ cho cửa sổ đã cho.

window.is_wintouched()

Trả về True nếu cửa sổ được chỉ định đã được sửa đổi kể từ lần gọi cuối cùng tới refresh(); nếu không thì trả về False.

window.keypad(flag)

Nếu flagTrue, các chuỗi thoát được tạo bởi một số phím (bàn phím, phím chức năng) sẽ được curses diễn giải. Nếu flagFalse, các chuỗi thoát sẽ được giữ nguyên trong luồng đầu vào.

window.leaveok(flag)

Nếu flagTrue, con trỏ sẽ được giữ ở vị trí đang cập nhật, thay vì ở "vị trí con trỏ". Điều này làm giảm chuyển động của con trỏ nếu có thể. Nếu có thể, con trỏ sẽ được ẩn đi.

Nếu flagFalse, con trỏ sẽ luôn ở "vị trí con trỏ" sau khi cập nhật.

window.move(new_y, new_x)

Di chuyển con trỏ tới (new_y, new_x).

window.mvderwin(y, x)

Di chuyển cửa sổ bên trong cửa sổ cha của nó. Các thông số liên quan đến màn hình của cửa sổ không bị thay đổi. Thủ tục này được sử dụng để hiển thị các phần khác nhau của cửa sổ chính tại cùng một vị trí vật lý trên màn hình.

window.mvwin(new_y, new_x)

Di chuyển cửa sổ sao cho góc trên bên trái của nó ở vị trí (new_y, new_x).

window.nodelay(flag)

Nếu flagTrue thì getch() sẽ không bị chặn.

window.notimeout(flag)

Nếu flagTrue, các chuỗi thoát sẽ không bị hết thời gian chờ.

Nếu flagFalse, sau vài mili giây, một chuỗi thoát sẽ không được diễn giải và sẽ được giữ nguyên trong luồng đầu vào.

window.noutrefresh()

Đánh dấu để làm mới nhưng chờ đợi. Hàm này cập nhật cấu trúc dữ liệu biểu thị trạng thái mong muốn của cửa sổ, nhưng không bắt buộc phải cập nhật màn hình vật lý. Để thực hiện điều đó, hãy gọi doupdate().

window.overlay(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])

Xếp chồng cửa sổ lên trên destwin. Các cửa sổ không cần phải có cùng kích thước, chỉ sao chép vùng chồng chéo. Bản sao này không phá hủy, có nghĩa là ký tự nền hiện tại không ghi đè lên nội dung cũ của destwin.

Để có được quyền kiểm soát chi tiết đối với vùng được sao chép, có thể sử dụng dạng overlay() thứ hai. sminrowsmincol là tọa độ phía trên bên trái của cửa sổ nguồn và các biến khác đánh dấu một hình chữ nhật trong cửa sổ đích.

window.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])

Ghi đè cửa sổ lên trên destwin. Các cửa sổ không cần phải có cùng kích thước, trong trường hợp đó chỉ có vùng chồng chéo được sao chép. Bản sao này mang tính phá hủy, có nghĩa là ký tự nền hiện tại sẽ ghi đè lên nội dung cũ của destwin.

Để có được quyền kiểm soát chi tiết đối với vùng được sao chép, có thể sử dụng dạng overwrite() thứ hai. sminrowsmincol là tọa độ phía trên bên trái của cửa sổ nguồn, các biến khác đánh dấu một hình chữ nhật trong cửa sổ đích.

window.putwin(file)

Ghi tất cả dữ liệu liên quan đến cửa sổ vào đối tượng tệp được cung cấp. Thông tin này có thể được truy xuất sau đó bằng chức năng getwin().

window.redrawln(beg, num)

Cho biết các dòng màn hình num, bắt đầu từ dòng beg, bị hỏng và cần được vẽ lại hoàn toàn trong lệnh gọi refresh() tiếp theo.

window.redrawwin()

Chạm vào toàn bộ cửa sổ, khiến nó được vẽ lại hoàn toàn trong lệnh gọi refresh() tiếp theo.

window.refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])

Cập nhật màn hình ngay lập tức (đồng bộ màn hình thực tế với các phương pháp vẽ/xóa trước đó).

6 đối số tùy chọn chỉ có thể được chỉ định khi cửa sổ là một bảng được tạo bằng newpad(). Các tham số bổ sung là cần thiết để cho biết phần nào của bảng và màn hình có liên quan. pminrowpmincol chỉ định góc trên bên trái của hình chữ nhật sẽ được hiển thị trong bảng. sminrow, smincol, smaxrowsmaxcol chỉ định các cạnh của hình chữ nhật sẽ được hiển thị trên màn hình. Góc dưới bên phải của hình chữ nhật hiển thị trong bảng được tính toán từ tọa độ màn hình vì các hình chữ nhật phải có cùng kích thước. Cả hai hình chữ nhật phải được chứa hoàn toàn trong cấu trúc tương ứng của chúng. Các giá trị âm của pminrow, pmincol, sminrow hoặc smincol được coi như chúng bằng 0.

window.resize(nlines, ncols)

Phân bổ lại bộ nhớ cho cửa sổ lời nguyền để điều chỉnh kích thước của nó theo các giá trị được chỉ định. Nếu một trong hai thứ nguyên lớn hơn giá trị hiện tại thì dữ liệu của cửa sổ sẽ chứa đầy các khoảng trống có hiển thị nền hiện tại (do bkgdset() đặt) được hợp nhất vào chúng.

window.scroll([lines=1])

Cuộn màn hình hoặc vùng cuộn lên trên theo dòng lines.

window.scrollok(flag)

Kiểm soát điều gì sẽ xảy ra khi con trỏ của cửa sổ được di chuyển ra khỏi mép cửa sổ hoặc vùng cuộn, do tác vụ dòng mới ở dòng dưới cùng hoặc do nhập ký tự cuối cùng của dòng cuối cùng. Nếu flagFalse thì con trỏ sẽ ở dòng dưới cùng. Nếu flagTrue, cửa sổ sẽ cuộn lên một dòng. Lưu ý rằng để có được hiệu ứng cuộn vật lý trên thiết bị đầu cuối, bạn cũng cần phải gọi idlok().

window.setscrreg(top, bottom)

Đặt vùng cuộn từ dòng top đến dòng bottom. Tất cả các hành động cuộn sẽ diễn ra trong khu vực này.

window.standend()

Tắt thuộc tính nổi bật. Trên một số thiết bị đầu cuối, điều này có tác dụng phụ là tắt tất cả các thuộc tính.

window.standout()

Bật thuộc tính A_STANDOUT.

window.subpad(begin_y, begin_x)
window.subpad(nlines, ncols, begin_y, begin_x)

Trả về một cửa sổ phụ có góc trên bên trái là (begin_y, begin_x) và có chiều rộng/chiều cao là ncols/nlines.

window.subwin(begin_y, begin_x)
window.subwin(nlines, ncols, begin_y, begin_x)

Trả về một cửa sổ phụ có góc trên bên trái là (begin_y, begin_x) và có chiều rộng/chiều cao là ncols/nlines.

Theo mặc định, cửa sổ phụ sẽ kéo dài từ vị trí được chỉ định đến góc dưới bên phải của cửa sổ.

window.syncdown()

Chạm vào từng vị trí trong cửa sổ đã được chạm vào trong bất kỳ cửa sổ tổ tiên nào của nó. Quy trình này được gọi bởi refresh(), vì vậy hầu như không bao giờ cần phải gọi nó theo cách thủ công.

window.syncok(flag)

Nếu flagTrue thì syncup() sẽ được gọi tự động bất cứ khi nào có thay đổi trong cửa sổ.

window.syncup()

Chạm vào tất cả các vị trí trong tổ tiên của cửa sổ đã được thay đổi trong cửa sổ.

window.timeout(delay)

Đặt hành vi đọc chặn hoặc không chặn cho cửa sổ. Nếu delay âm, việc chặn đọc sẽ được sử dụng (việc này sẽ đợi vô thời hạn để nhập dữ liệu). Nếu delay bằng 0 thì đọc không chặn sẽ được sử dụng và getch() sẽ trả về -1 nếu không có đầu vào nào đang chờ. Nếu delay dương thì getch() sẽ chặn delay mili giây và trả về -1 nếu vẫn không có đầu vào vào cuối thời gian đó.

window.touchline(start, count[, changed])

Giả sử các dòng count đã được thay đổi, bắt đầu bằng dòng start. Nếu changed được cung cấp, nó sẽ chỉ định xem các dòng bị ảnh hưởng được đánh dấu là đã bị thay đổi (changed=True) hay không thay đổi (changed=False).

window.touchwin()

Giả sử toàn bộ cửa sổ đã được thay đổi nhằm mục đích tối ưu hóa bản vẽ.

window.untouchwin()

Đánh dấu tất cả các dòng trong cửa sổ là không thay đổi kể từ lệnh gọi cuối cùng tới refresh().

window.vline(ch, n[, attr])
window.vline(y, x, ch, n[, attr])

Hiển thị một đường thẳng đứng bắt đầu từ (y, x) với độ dài n gồm ký tự ch với thuộc tính attr.

Hằng số

Mô-đun curses xác định các thành viên dữ liệu sau:

curses.ERR

Một số thủ tục nguyền rủa trả về một số nguyên, chẳng hạn như getch(), trả về ERR khi thất bại.

curses.OK

Một số thủ tục nguyền rủa trả về một số nguyên, chẳng hạn như napms(), trả về OK khi thành công.

curses.version

Đối tượng byte đại diện cho phiên bản hiện tại của mô-đun.

curses.ncurses_version

Một bộ dữ liệu có tên chứa ba thành phần của phiên bản thư viện ncurses: major, minorpatch. Tất cả các giá trị là số nguyên. Các thành phần cũng có thể được truy cập theo tên, vì vậy curses.ncurses_version[0] tương đương với curses.ncurses_version.major, v.v.

Tính khả dụng: nếu thư viện ncurses được sử dụng.

Added in version 3.8.

curses.COLORS

Số lượng màu tối đa mà thiết bị đầu cuối có thể hỗ trợ. Nó chỉ được xác định sau lệnh gọi tới start_color().

curses.COLOR_PAIRS

Số lượng cặp màu tối đa mà thiết bị đầu cuối có thể hỗ trợ. Nó chỉ được xác định sau lệnh gọi tới start_color().

curses.COLS

Chiều rộng của màn hình, tức là số lượng cột. Nó chỉ được xác định sau lệnh gọi tới initscr(). Được cập nhật bởi update_lines_cols(), resizeterm()resize_term().

curses.LINES

Chiều cao của màn hình, tức là số dòng. Nó chỉ được xác định sau lệnh gọi tới initscr(). Được cập nhật bởi update_lines_cols(), resizeterm()resize_term().

Một số hằng số có sẵn để chỉ định các thuộc tính ô ký tự. Các hằng số chính xác có sẵn phụ thuộc vào hệ thống.

Thuộc tính

Ý nghĩa

curses.A_ALTCHARSET

Chế độ đặt ký tự thay thế

Chế độ nhấp nháy

curses.A_BOLD

Chế độ in đậm

curses.A_DIM

Chế độ mờ

curses.A_INVIS

Chế độ ẩn hoặc trống

curses.A_ITALIC

Chế độ in nghiêng

curses.A_NORMAL

Thuộc tính bình thường

curses.A_PROTECT

Chế độ bảo vệ

curses.A_REVERSE

Đảo ngược màu nền và màu nền trước

curses.A_STANDOUT

Chế độ nổi bật

curses.A_UNDERLINE

Chế độ gạch chân

curses.A_HORIZONTAL

Đánh dấu ngang

curses.A_LEFT

Đánh dấu bên trái

curses.A_LOW

Điểm nổi bật thấp

curses.A_RIGHT

Đánh dấu bên phải

curses.A_TOP

Điểm nổi bật hàng đầu

curses.A_VERTICAL

Đánh dấu dọc

Added in version 3.7: A_ITALIC đã được thêm vào.

Một số hằng số có sẵn để trích xuất các thuộc tính tương ứng được trả về bởi một số phương thức.

Mặt nạ bit

Ý nghĩa

curses.A_ATTRIBUTES

Mặt nạ bit để trích xuất thuộc tính

curses.A_CHARTEXT

Mặt nạ bit để trích xuất một ký tự

curses.A_COLOR

Mặt nạ bit để trích xuất thông tin trường cặp màu

Các khóa được tham chiếu bằng hằng số nguyên có tên bắt đầu bằng KEY_. Các keycap chính xác có sẵn tùy thuộc vào hệ thống.

Hằng số khóa

Chìa khóa

curses.KEY_MIN

Giá trị khóa tối thiểu

curses.KEY_BREAK

Phím ngắt (không đáng tin cậy)

curses.KEY_DOWN

Mũi tên xuống

curses.KEY_UP

Mũi tên lên

curses.KEY_LEFT

Mũi tên trái

curses.KEY_RIGHT

Mũi tên phải

curses.KEY_HOME

Phím Home (mũi tên hướng lên+trái)

curses.KEY_BACKSPACE

Phím lùi (không đáng tin cậy)

curses.KEY_F0

Các phím chức năng. Hỗ trợ tới 64 phím chức năng.

curses.KEY_Fn

Giá trị của phím chức năng n

curses.KEY_DL

Xóa dòng

curses.KEY_IL

Chèn dòng

curses.KEY_DC

Xóa ký tự

curses.KEY_IC

Chèn char hoặc vào chế độ chèn

curses.KEY_EIC

Thoát chế độ chèn char

curses.KEY_CLEAR

Xóa màn hình

curses.KEY_EOS

Xóa đến cuối màn hình

curses.KEY_EOL

Xóa đến cuối dòng

curses.KEY_SF

Cuộn về phía trước 1 dòng

curses.KEY_SR

Cuộn lùi 1 dòng (đảo ngược)

curses.KEY_NPAGE

Trang tiếp theo

curses.KEY_PPAGE

Trang trước

curses.KEY_STAB

Đặt tab

curses.KEY_CTAB

Xóa tab

curses.KEY_CATAB

Xóa tất cả các tab

curses.KEY_ENTER

Nhập hoặc gửi (không đáng tin cậy)

curses.KEY_SRESET

Thiết lập lại mềm (một phần) (không đáng tin cậy)

curses.KEY_RESET

Đặt lại hoặc thiết lập lại cứng (không đáng tin cậy)

curses.KEY_PRINT

In

curses.KEY_LL

Nhà ở dưới hoặc dưới cùng (phía dưới bên trái)

curses.KEY_A1

Phía trên bên trái của bàn phím

curses.KEY_A3

Phía trên bên phải bàn phím

curses.KEY_B2

Trung tâm bàn phím

curses.KEY_C1

Phía dưới bên trái bàn phím

curses.KEY_C3

Phía dưới bên phải bàn phím

curses.KEY_BTAB

Tab quay lại

curses.KEY_BEG

Cầu xin (bắt đầu)

curses.KEY_CANCEL

Hủy bỏ

curses.KEY_CLOSE

Đóng

curses.KEY_COMMAND

Cmd (lệnh)

curses.KEY_COPY

Sao chép

curses.KEY_CREATE

Tạo

curses.KEY_END

Kết thúc

curses.KEY_EXIT

Thoát

curses.KEY_FIND

Tìm

curses.KEY_HELP

Trợ giúp

curses.KEY_MARK

Đánh dấu

curses.KEY_MESSAGE

Tin nhắn

curses.KEY_MOVE

Di chuyển

curses.KEY_NEXT

Tiếp theo

curses.KEY_OPEN

Mở

curses.KEY_OPTIONS

Tùy chọn

curses.KEY_PREVIOUS

Trước (trước đó)

curses.KEY_REDO

Làm lại

curses.KEY_REFERENCE

Tham khảo (tham khảo)

curses.KEY_REFRESH

Làm mới

curses.KEY_REPLACE

Thay thế

curses.KEY_RESTART

Khởi động lại

curses.KEY_RESUME

Tiếp tục

curses.KEY_SAVE

Lưu

curses.KEY_SBEG

Bắt đầu thay đổi (bắt đầu)

curses.KEY_SCANCEL

Đã chuyển Hủy

curses.KEY_SCOMMAND

Lệnh đã chuyển

curses.KEY_SCOPY

Bản sao đã thay đổi

curses.KEY_SCREATE

Đã thay đổi Tạo

curses.KEY_SDC

Đã thay đổi Xóa ký tự

curses.KEY_SDL

Đã dịch chuyển Xóa dòng

curses.KEY_SELECT

chọn

curses.KEY_SEND

Đã thay đổi phần cuối

curses.KEY_SEOL

Đã chuyển dòng Xóa

curses.KEY_SEXIT

Đã chuyển lối thoát

curses.KEY_SFIND

Tìm kiếm đã thay đổi

curses.KEY_SHELP

Trợ giúp đã thay đổi

curses.KEY_SHOME

Chuyển nhà

curses.KEY_SIC

Đầu vào đã thay đổi

curses.KEY_SLEFT

Đã dịch chuyển mũi tên sang trái

curses.KEY_SMESSAGE

Tin nhắn đã thay đổi

curses.KEY_SMOVE

Di chuyển đã dịch chuyển

curses.KEY_SNEXT

Đã chuyển tiếp theo

curses.KEY_SOPTIONS

Tùy chọn đã thay đổi

curses.KEY_SPREVIOUS

Đã thay đổi trước đó

curses.KEY_SPRINT

In đã thay đổi

curses.KEY_SREDO

Đã chuyển làm lại

curses.KEY_SREPLACE

Đã thay thế Thay thế

curses.KEY_SRIGHT

Đã dịch chuyển mũi tên phải

curses.KEY_SRSUME

Sơ yếu lý lịch đã thay đổi

curses.KEY_SSAVE

Đã thay đổi Lưu

curses.KEY_SSUSPEND

Tạm dừng đã thay đổi

curses.KEY_SUNDO

Đã chuyển hoàn tác

curses.KEY_SUSPEND

Đình chỉ

curses.KEY_UNDO

Hoàn tác

curses.KEY_MOUSE

Sự kiện chuột đã xảy ra

curses.KEY_RESIZE

Sự kiện thay đổi kích thước thiết bị đầu cuối

curses.KEY_MAX

Giá trị khóa tối đa

Trên VT100 và các phần mềm mô phỏng của chúng, chẳng hạn như trình mô phỏng thiết bị đầu cuối X, thường có sẵn ít nhất bốn phím chức năng (KEY_F1, KEY_F2, KEY_F3, KEY_F4) và các phím mũi tên được ánh xạ tới KEY_UP, KEY_DOWN, KEY_LEFTKEY_RIGHT một cách rõ ràng. Nếu máy của bạn có bàn phím PC, bạn có thể yên tâm sử dụng các phím mũi tên và 12 phím chức năng (bàn phím PC cũ hơn có thể chỉ có 10 phím chức năng); Ngoài ra, ánh xạ bàn phím sau đây là tiêu chuẩn:

nắp bàn phím

Hằng số

Insert

KEY_IC

Delete

KEY_DC

Home

KEY_HOME

End

KEY_END

Page Up

KEY_PPAGE

Page Down

KEY_NPAGE

Bảng sau liệt kê các ký tự từ bộ ký tự thay thế. Chúng được kế thừa từ thiết bị đầu cuối VT100 và thường sẽ có sẵn trên các mô phỏng phần mềm như thiết bị đầu cuối X. Khi không có sẵn đồ họa, những lời nguyền sẽ rơi vào giá trị gần đúng ASCII có thể in thô.

Ghi chú

Những thứ này chỉ khả dụng sau khi initscr() được gọi.

mã ACS

Ý nghĩa

curses.ACS_BBSS

tên thay thế cho góc trên bên phải

curses.ACS_BLOCK

khối vuông đặc

curses.ACS_BOARD

bảng hình vuông

curses.ACS_BSBS

tên thay thế cho đường ngang

curses.ACS_BSSB

tên thay thế cho góc trên bên trái

curses.ACS_BSSS

tên thay thế cho tee hàng đầu

curses.ACS_BTEE

tee dưới

curses.ACS_BULLET

viên đạn

curses.ACS_CKBOARD

bàn cờ (bàn cờ)

curses.ACS_DARROW

mũi tên chỉ xuống

curses.ACS_DEGREE

ký hiệu độ

curses.ACS_DIAMOND

kim cương

curses.ACS_GEQUAL

lớn hơn hoặc bằng

curses.ACS_HLINE

đường ngang

curses.ACS_LANTERN

biểu tượng đèn lồng

curses.ACS_LARROW

mũi tên trái

curses.ACS_LEQUAL

nhỏ hơn hoặc bằng

curses.ACS_LLCORNER

góc dưới bên trái

curses.ACS_LRCORNER

góc dưới bên phải

curses.ACS_LTEE

tee trái

curses.ACS_NEQUAL

dấu không bằng

curses.ACS_PI

chữ pi

curses.ACS_PLMINUS

dấu cộng hoặc dấu trừ

curses.ACS_PLUS

dấu cộng lớn

curses.ACS_RARROW

mũi tên phải

curses.ACS_RTEE

tee bên phải

curses.ACS_S1

quét dòng 1

curses.ACS_S3

quét dòng 3

curses.ACS_S7

quét dòng 7

curses.ACS_S9

quét dòng 9

curses.ACS_SBBS

tên thay thế cho góc dưới bên phải

curses.ACS_SBSB

tên thay thế cho đường thẳng đứng

curses.ACS_SBSS

tên thay thế cho tee bên phải

curses.ACS_SSBB

tên thay thế cho góc dưới bên trái

curses.ACS_SSBS

tên thay thế cho tee phía dưới

curses.ACS_SSSB

tên thay thế cho tee bên trái

curses.ACS_SSSS

tên thay thế cho crossover hoặc big plus

curses.ACS_STERLING

bảng Anh

curses.ACS_TTEE

áo thun hàng đầu

curses.ACS_UARROW

mũi tên lên

curses.ACS_ULCORNER

góc trên bên trái

curses.ACS_URCORNER

góc trên bên phải

curses.ACS_VLINE

đường thẳng đứng

Bảng sau liệt kê các hằng số nút chuột được getmouse() sử dụng:

Nút chuột không đổi

Ý nghĩa

curses.BUTTONn_PRESSED

Đã nhấn nút chuột n

curses.BUTTONn_RELEASED

Nút chuột n ra mắt

curses.BUTTONn_CLICKED

Đã click chuột n

curses.BUTTONn_DOUBLE_CLICKED

Nút chuột n nhấp đúp

curses.BUTTONn_TRIPLE_CLICKED

Nút chuột n nhấp ba lần

curses.BUTTON_SHIFT

Phím Shift đã bị tắt trong khi thay đổi trạng thái nút

curses.BUTTON_CTRL

Điều khiển không hoạt động trong khi thay đổi trạng thái nút

curses.BUTTON_ALT

Điều khiển không hoạt động trong khi thay đổi trạng thái nút

Thay đổi trong phiên bản 3.10: Các hằng số BUTTON5_* hiện được hiển thị nếu chúng được cung cấp bởi thư viện lời nguyền cơ bản.

Bảng sau liệt kê các màu được xác định trước:

Hằng số

Màu sắc

curses.COLOR_BLACK

Đen

curses.COLOR_BLUE

Màu xanh

curses.COLOR_CYAN

Cyan (xanh lục nhạt)

curses.COLOR_GREEN

màu xanh lá cây

curses.COLOR_MAGENTA

Magenta (đỏ tía)

curses.COLOR_RED

màu đỏ

curses.COLOR_WHITE

trắng

curses.COLOR_YELLOW

màu vàng

curses.textpad --- Tiện ích nhập văn bản cho chương trình chửi bới

Mô-đun curses.textpad cung cấp một lớp Textbox xử lý việc chỉnh sửa văn bản cơ bản trong cửa sổ có lời nguyền, hỗ trợ một tập hợp các tổ hợp phím giống như của Emacs (do đó, cũng như của Netscape Navigator, BBedit 6.x, FrameMaker và nhiều chương trình khác). Mô-đun này cũng cung cấp chức năng vẽ hình chữ nhật hữu ích để đóng khung các hộp văn bản hoặc cho các mục đích khác.

Mô-đun curses.textpad xác định chức năng sau:

curses.textpad.rectangle(win, uly, ulx, lry, lrx)

Vẽ một hình chữ nhật. Đối số đầu tiên phải là đối tượng cửa sổ; các đối số còn lại là tọa độ tương ứng với cửa sổ đó. Đối số thứ hai và thứ ba là tọa độ y và x của góc trên bên trái của hình chữ nhật sẽ được vẽ; đối số thứ tư và thứ năm là tọa độ y và x ở góc dưới bên phải. Hình chữ nhật sẽ được vẽ bằng cách sử dụng các ký tự biểu mẫu PC VT100/IBM trên các thiết bị đầu cuối để thực hiện điều này (bao gồm xterm và hầu hết các trình mô phỏng thiết bị đầu cuối phần mềm khác). Nếu không, nó sẽ được vẽ bằng dấu gạch ngang ASCII, thanh dọc và dấu cộng.

Đối tượng hộp văn bản

Bạn có thể khởi tạo một đối tượng Textbox như sau:

class curses.textpad.Textbox(win)

Trả về một đối tượng tiện ích hộp văn bản. Đối số win phải là một đối tượng window bị nguyền rủa trong đó hộp văn bản sẽ được chứa. Con trỏ chỉnh sửa của hộp văn bản ban đầu nằm ở góc trên bên trái của cửa sổ chứa, có tọa độ (0, 0). Cờ stripspaces của phiên bản ban đầu được bật.

Các đối tượng Textbox có các phương thức sau:

edit([validator])

Đây là điểm vào bạn thường sử dụng. Nó chấp nhận chỉnh sửa tổ hợp phím cho đến khi nhập một trong các tổ hợp phím kết thúc. Nếu validator được cung cấp thì nó phải là một hàm. Nó sẽ được gọi cho mỗi lần nhấn phím được nhập với tổ hợp phím làm tham số; lệnh gửi được thực hiện trên kết quả. Phương thức này trả về nội dung cửa sổ dưới dạng một chuỗi; thuộc tính stripspaces có bao gồm các khoảng trống trong cửa sổ hay không.

do_command(ch)

Xử lý một lần nhấn phím lệnh. Dưới đây là các tổ hợp phím đặc biệt được hỗ trợ:

Tổ hợp phím

hành động

Control-A

Đi đến cạnh trái của cửa sổ.

Control-B

Con trỏ sang trái, ngắt dòng về dòng trước nếu thích hợp.

Control-D

Xóa ký tự dưới con trỏ.

Control-E

Đi tới cạnh phải (tắt khoảng cách) hoặc cuối dòng (bật khoảng cách).

Control-F

Con trỏ sang phải, ngắt dòng tiếp theo khi thích hợp.

Control-G

Chấm dứt, trả lại nội dung cửa sổ.

Control-H

Xóa ký tự ngược.

Control-J

Chấm dứt nếu cửa sổ là 1 dòng, nếu không thì chèn dòng mới.

Control-K

Nếu dòng trống thì xóa nó, nếu không thì xóa đến cuối dòng.

Control-L

Làm mới màn hình.

Control-N

Con trỏ xuống; di chuyển xuống một dòng.

Control-O

Chèn một dòng trống vào vị trí con trỏ.

Control-P

Con trỏ lên; di chuyển lên một dòng.

Các thao tác di chuyển sẽ không có tác dụng gì nếu con trỏ ở cạnh mà không thể di chuyển được. Các từ đồng nghĩa sau đây được hỗ trợ nếu có thể:

Hằng số

Tổ hợp phím

KEY_LEFT

Control-B

KEY_RIGHT

Control-F

KEY_UP

Control-P

KEY_DOWN

Control-N

KEY_BACKSPACE

Control-h

Tất cả các lần nhấn phím khác được coi là lệnh để chèn ký tự đã cho và di chuyển sang phải (có ngắt dòng).

gather()

Trả về nội dung cửa sổ dưới dạng chuỗi; việc các khoảng trống trong cửa sổ có được đưa vào hay không sẽ bị ảnh hưởng bởi thành viên stripspaces.

stripspaces

Thuộc tính này là cờ kiểm soát việc diễn giải các khoảng trống trong cửa sổ. Khi nó được bật, các khoảng trống ở cuối mỗi dòng sẽ bị bỏ qua; Thay vào đó, bất kỳ chuyển động con trỏ nào đưa con trỏ đến một ô trống ở cuối sẽ chuyển đến cuối dòng đó và các khoảng trống ở cuối sẽ bị loại bỏ khi nội dung cửa sổ được thu thập.