我想到了!对我来说不幸的是,我太专注于遵循教程中的示例而忽略了根本问题。当我在这里找到类似的帖子(链接包含在我的问题中)时,我应该已经明白了,但我认为我遇到的问题是不同的。
基本上,我认为 UniCurses 和/或 PDCurses 设置不正确,进而导致方法无法访问。事实并非如此。相反,我正在关注的教程中的代码实际上是错误地访问了这些方法(不知道为什么它对它们有用,也许是旧版本?)。
这是一个例子:
import unicurses
# Init screen object
stdscr = unicurses.initscr()
# Incorrect way to access methods:
stdscr.addstr('Hello World!')
# Correct way to access methods:
unicurses.addstr('Hello World!')
或者
from unicurses import *
# Init screen object
stdscr = initscr()
# Incorrect way to access methods:
stdscr.addstr('Hello World!')
# Correct way to access methods:
addstr('Hello World!')
直到我在网上找到了这个 UniCurses 安装测试脚本,我才真正意识到这个问题:
# Script to test the installation of UniCurses
from unicurses import *
stdscr = initscr() # initializes the standard screen
addstr('Hello World!\n')
addch(ord('A') | A_BOLD)
addstr(' single bold letter\n')
attron(A_BOLD) # Turns on attribute
addstr('\n\nBold string')
attroff(A_BOLD)
addstr("\nNot bold now")
mvaddch(7, 10, 66); #B at row 7, col 10
addstr(' - single letter at row 7, col 10')
start_color()
init_pair(1, COLOR_RED, COLOR_GREEN) # Specifies foreground and background pair 1
init_pair(2, COLOR_YELLOW, COLOR_RED)
attron(COLOR_PAIR(1))
mvaddstr(15, 12, 'Red on green at row 15, col 12')
attroff(COLOR_PAIR(1))
attron(COLOR_PAIR(2))
addstr('\n\nYellow on red')
addstr('\n\nPress up arrow!')
attroff(COLOR_PAIR(2))
cbreak() # Gets raw key inputs but allows CRTL+C to work
keypad(stdscr, True) # Get arrow keys etc.
noecho() # Do not display automatically characters for key presses
a = getch() # Gets the key code
if a == KEY_UP:
beep()
clear()
addstr('Beep! Any key to quit.')
a = getch()
(来源: http: //www.pp4s.co.uk/main/tu-python-unicurses.html)
我希望这对遇到此问题的其他人有所帮助。我肯定会因为没有早点赶上而责备自己。