我正在学习如何使用curses,并尝试创建一个简单的程序来开始。我希望这个程序总是在左上角打印 aq,然后在 1,1 中打印最近按下的字符。但我不确定如何设置光标的位置,应该使用curses.setsyx(y,x) 函数来更改光标的位置,但它不起作用。这是我的程序:
import curses
import sys,os
def screen_init(stdscr):
stdscr.clear()
stdscr.refresh()
stdscr.scrollok(1)
height, width = stdscr.getmaxyx()
curses.start_color()
curses.init_pair(1, curses.COLOR_CYAN, curses.COLOR_BLACK)
while True:
stdscr.addstr(0, 0, "q", curses.color_pair(1))
key = stdscr.getch()
stdscr.addstr(1, 1, chr(int(key)), curses.color_pair(1))
if key == ord('q'):
break
elif key == ord('p'):
curses.setsyx(3, 3)
curs_y, curs_x = curses.getsyx()
curses.doupdate()
stdscr.addstr(1, 1, "clicked! " + str(curs_x) + " " +
str(curs_y), curses.color_pair(1))
stdscr.refresh()
curses.endwin()
def main():
curses.wrapper(screen_init)
if (__name__ == "__main__"):
main();
Run Code Online (Sandbox Code Playgroud)
关于它为什么不做任何事情的任何想法?当我使用 getsyx() 时,它得到 3, 3 但光标的真实位置不会改变
如果我有以下带有自定义CSS类的HTML:
.custom_list_item {
color: black;
}
.custom_list_item:hover {
color: red;
}Run Code Online (Sandbox Code Playgroud)
<div class="custom_list_item">Test</div>Run Code Online (Sandbox Code Playgroud)
这样,当我将鼠标悬停在整个框上时,它会使文本变为红色。有没有办法确保仅当我将鼠标悬停在文本本身上时才会发生这种情况?