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
0thà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ề
TruehoặcFalse, 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đếnCOLORS - 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) đến1000(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_REVERSEvà các thuộc tínhA_*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,1hoặc2, 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ọirefresh()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ọinoutrefresh()trên tất cả các cửa sổ, sau đó là một lệnh gọidoupdate().
- 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 khiinitscr()được gọi. Hiệu quả là, trong các cuộc gọi đó,LINESđược đặt thành1; các khả năngclear,cup,cud,cud1,cuu1,cuu,vpabị vô hiệu hóa; và chuỗihomeđượ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ếuleaveokhiện làTruethì 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ề
Truenế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ề
Truenế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ề
Truenế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ề
Truenế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ề
Truenế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đến255. Sử dụngnocbreak()để 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đếnCOLORS - 1. Mỗi r, g, b phải có giá trị nằm trong khoảng từ0đến1000. Khi sử dụnginit_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ếucan_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đếnCOLOR_PAIRS - 1(cặp màu0chỉ có thể được thay đổi bởiuse_default_colors()vàassume_default_colors()). Giá trị của các đối số fg và bg phải nằm trong khoảng từ0đếnCOLORS - 1hoặc sau khi gọiuse_default_colors()hoặcassume_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ề
Truenếuresize_term()sửa đổi cấu trúc cửa sổ,Falsenếu không.
- curses.isendwin()¶
Trả về
Truenếuendwin()đã đượ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 flag là
True, hãy cho phép nhập các ký tự 8 bit. Nếu flag làFalse, 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()và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,QUITvàSUSPsẽ không được thực hiện. Bạn có thể muốn gọinoqiflush()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đếnCOLOR_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ủaputp()luôn ở mức đầu ra tiêu chuẩn.
- curses.qiflush([flag])¶
Nếu flag là
False, hiệu ứng cũng giống như gọinoqiflush(). Nếu flag làTruehoặ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àmresize_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 y và x đều là
-1thì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ặcNonethì giá trị của biến môi trườngTERMsẽ đượ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 chosys.stdoutsẽ đượ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ô-đuncurses,COLORSvàCOLOR_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ị
-1nếu capname không phải là khả năng Boolean hoặc0nế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ị
-2nếu capname không phải là khả năng số hoặc-1nế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ề
Nonenế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 đếnb'\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 là
-1thì 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
LINESvàCOLS. 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_MOUSEvà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 flag làFalse, 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ườngLINESvàCOLUMNS(đượ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ếuLINESvàCOLUMNSkhô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()và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ọiaddstr()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ị
0cho 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
rs
Bên phải
ts
hàng đầu
bs
Dưới cùng
tl
Góc trên bên trái
tr
Góc trên bên phải
bl
Góc dưới bên trái
br
Góc dưới bên phải
- window.box([vertch, horch])¶
Tương tự như
border(), nhưng cả ls và rs đều là vertch và cả ts và bs đề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áptouchline()để 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ớirefresh().
- 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ọisubwin(), ngoại trừ việc begin_y và begin_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.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ề
TruehoặcFalse. 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ề
1hoặc0thay vìTruehoặcFalse.
- 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 (xemlocale.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ề
-1nế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 flag là
False, 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 flag làTrue, 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 flag là
True,cursessẽ 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 flag là
True, 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ọirefresh()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ề
Truenếu dòng được chỉ định đã được sửa đổi kể từ lần gọi cuối cùng tớirefresh(); nếu không thì trả vềFalse. Đưa ra ngoại lệcurses.errornếu line không hợp lệ cho cửa sổ đã cho.
- window.is_wintouched()¶
Trả về
Truenếu cửa sổ được chỉ định đã được sửa đổi kể từ lần gọi cuối cùng tớirefresh(); nếu không thì trả vềFalse.
- window.keypad(flag)¶
Nếu flag là
True, 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ẽ đượccursesdiễn giải. Nếu flag làFalse, các chuỗi thoát sẽ được giữ nguyên trong luồng đầu vào.
- window.leaveok(flag)¶
Nếu flag là
True, 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 flag là
False, 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.notimeout(flag)¶
Nếu flag là
True, các chuỗi thoát sẽ không bị hết thời gian chờ.Nếu flag là
False, 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. sminrow và smincol 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. sminrow và smincol 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. pminrow và pmincol 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, smaxrow và smaxcol 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 flag là
Falsethì con trỏ sẽ ở dòng dưới cùng. Nếu flag làTrue, 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ọiidlok().
- 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 flag là
Truethì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ề-1nế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ề-1nế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ềERRkhi 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ềOKkhi 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, minor và patch. 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ớicurses.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ởiupdate_lines_cols(),resizeterm()và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ởiupdate_lines_cols(),resizeterm()và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 |
|---|---|
|
Chế độ đặt ký tự thay thế |
|
Chế độ nhấp nháy |
|
Chế độ in đậm |
|
Chế độ mờ |
|
Chế độ ẩn hoặc trống |
|
Chế độ in nghiêng |
|
Thuộc tính bình thường |
|
Chế độ bảo vệ |
|
Đảo ngược màu nền và màu nền trước |
|
Chế độ nổi bật |
|
Chế độ gạch chân |
|
Đánh dấu ngang |
|
Đánh dấu bên trái |
|
Điểm nổi bật thấp |
|
Đánh dấu bên phải |
|
Điểm nổi bật hàng đầu |
|
Đá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 |
|---|---|
|
Mặt nạ bit để trích xuất thuộc tính |
|
Mặt nạ bit để trích xuất một ký tự |
|
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 |
|---|---|
|
Giá trị khóa tối thiểu |
|
Phím ngắt (không đáng tin cậy) |
|
Mũi tên xuống |
|
Mũi tên lên |
|
Mũi tên trái |
|
Mũi tên phải |
|
Phím Home (mũi tên hướng lên+trái) |
|
Phím lùi (không đáng tin cậy) |
|
Các phím chức năng. Hỗ trợ tới 64 phím chức năng. |
|
Giá trị của phím chức năng n |
|
Xóa dòng |
|
Chèn dòng |
|
Xóa ký tự |
|
Chèn char hoặc vào chế độ chèn |
|
Thoát chế độ chèn char |
|
Xóa màn hình |
|
Xóa đến cuối màn hình |
|
Xóa đến cuối dòng |
|
Cuộn về phía trước 1 dòng |
|
Cuộn lùi 1 dòng (đảo ngược) |
|
Trang tiếp theo |
|
Trang trước |
|
Đặt tab |
|
Xóa tab |
|
Xóa tất cả các tab |
|
Nhập hoặc gửi (không đáng tin cậy) |
|
Thiết lập lại mềm (một phần) (không đáng tin cậy) |
|
Đặt lại hoặc thiết lập lại cứng (không đáng tin cậy) |
|
In |
|
Nhà ở dưới hoặc dưới cùng (phía dưới bên trái) |
|
Phía trên bên trái của bàn phím |
|
Phía trên bên phải bàn phím |
|
Trung tâm bàn phím |
|
Phía dưới bên trái bàn phím |
|
Phía dưới bên phải bàn phím |
|
Tab quay lại |
|
Cầu xin (bắt đầu) |
|
Hủy bỏ |
|
Đóng |
|
Cmd (lệnh) |
|
Sao chép |
|
Tạo |
|
Kết thúc |
|
Thoát |
|
Tìm |
|
Trợ giúp |
|
Đánh dấu |
|
Tin nhắn |
|
Di chuyển |
|
Tiếp theo |
|
Mở |
|
Tùy chọn |
|
Trước (trước đó) |
|
Làm lại |
|
Tham khảo (tham khảo) |
|
Làm mới |
|
Thay thế |
|
Khởi động lại |
|
Tiếp tục |
|
Lưu |
|
Bắt đầu thay đổi (bắt đầu) |
|
Đã chuyển Hủy |
|
Lệnh đã chuyển |
|
Bản sao đã thay đổi |
|
Đã thay đổi Tạo |
|
Đã thay đổi Xóa ký tự |
|
Đã dịch chuyển Xóa dòng |
|
chọn |
|
Đã thay đổi phần cuối |
|
Đã chuyển dòng Xóa |
|
Đã chuyển lối thoát |
|
Tìm kiếm đã thay đổi |
|
Trợ giúp đã thay đổi |
|
Chuyển nhà |
|
Đầu vào đã thay đổi |
|
Đã dịch chuyển mũi tên sang trái |
|
Tin nhắn đã thay đổi |
|
Di chuyển đã dịch chuyển |
|
Đã chuyển tiếp theo |
|
Tùy chọn đã thay đổi |
|
Đã thay đổi trước đó |
|
In đã thay đổi |
|
Đã chuyển làm lại |
|
Đã thay thế Thay thế |
|
Đã dịch chuyển mũi tên phải |
|
Sơ yếu lý lịch đã thay đổi |
|
Đã thay đổi Lưu |
|
Tạm dừng đã thay đổi |
|
Đã chuyển hoàn tác |
|
Đình chỉ |
|
Hoàn tác |
|
Sự kiện chuột đã xảy ra |
|
Sự kiện thay đổi kích thước thiết bị đầu cuối |
|
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_LEFT và KEY_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 |
|---|---|
|
tên thay thế cho góc trên bên phải |
|
khối vuông đặc |
|
bảng hình vuông |
|
tên thay thế cho đường ngang |
|
tên thay thế cho góc trên bên trái |
|
tên thay thế cho tee hàng đầu |
|
tee dưới |
|
viên đạn |
|
bàn cờ (bàn cờ) |
|
mũi tên chỉ xuống |
|
ký hiệu độ |
|
kim cương |
|
lớn hơn hoặc bằng |
|
đường ngang |
|
biểu tượng đèn lồng |
|
mũi tên trái |
|
nhỏ hơn hoặc bằng |
|
góc dưới bên trái |
|
góc dưới bên phải |
|
tee trái |
|
dấu không bằng |
|
chữ pi |
|
dấu cộng hoặc dấu trừ |
|
dấu cộng lớn |
|
mũi tên phải |
|
tee bên phải |
|
quét dòng 1 |
|
quét dòng 3 |
|
quét dòng 7 |
|
quét dòng 9 |
|
tên thay thế cho góc dưới bên phải |
|
tên thay thế cho đường thẳng đứng |
|
tên thay thế cho tee bên phải |
|
tên thay thế cho góc dưới bên trái |
|
tên thay thế cho tee phía dưới |
|
tên thay thế cho tee bên trái |
|
tên thay thế cho crossover hoặc big plus |
|
bảng Anh |
|
áo thun hàng đầu |
|
mũi tên lên |
|
góc trên bên trái |
|
góc trên bên phải |
|
đườ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 |
|---|---|
|
Đã nhấn nút chuột n |
|
Nút chuột n ra mắt |
|
Đã click chuột n |
|
Nút chuột n nhấp đúp |
|
Nút chuột n nhấp ba lần |
|
Phím Shift đã bị tắt trong khi thay đổi trạng thái nút |
|
Điều khiển không hoạt động trong khi thay đổi trạng thái nút |
|
Đ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 |
|---|---|
|
Đen |
|
Màu xanh |
|
Cyan (xanh lục nhạt) |
|
màu xanh lá cây |
|
Magenta (đỏ tía) |
|
màu đỏ |
|
trắng |
|
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ờstripspacescủa phiên bản ban đầu được bật.Các đối tượng
Textboxcó 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
stripspacescó 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
Control-B
Control-F
Control-P
Control-N
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.