curses中有多个游标

时间:2016-10-20 20:53:25

标签: c ncurses

我在C / C ++中使用ncurses。我试图获得多个闪烁的游标,但到目前为止,我一直没有成功。在ncurses中有可能吗?也欢迎支持此类的类似库(C / C ++或Python)的建议。

更新:使用“光标”我的意思是一个闪烁的块/行字符,而不是从键盘接收输入的东西。

2 个答案:

答案 0 :(得分:2)

简短:不,你不能那样做

long:curses只能要求终端做事(终端不这样做)。

curses显示中的每个窗口都有自己的光标位置,但终端一次只能显示一个光标。如果您要求输入,例如使用getch,则curses会将终端的光标放在您移动它的窗口的最后位置。

答案 1 :(得分:1)

如接受的答案中所述,您终端实际上不能有多个游标,但您可以模拟它。

使用ncurses,您可以隐藏实际的光标并使用chgat(3)系列函数来更改要作为游标显示的字符的属性。通过在多个位置执行此操作,您的程序似乎使用多个游标。

此程序突出显示“Hello”中的“H”和反向突出显示的世界中的“w”,使其看起来像光标悬停在每个角色上。然后它睡了5秒钟然后退出。

from tkinter import *
import tkinter as tk

root = Tk()

def getVal():
    val=ent1.get()
    degree = (int(val) * 5)
    print (degree)

ent1 = Entry(root)
ent1.pack()

butt1 = Button(root, text="Click Me", command=getVal)
butt1.pack()

w = Label(root, text="Your Degree Is:" %degree)
w.pack()

root.mainloop()