我想为基本数据库管理制作一个菜单驱动的程序。
所以,请在下面的示例的帮助下,让我了解如何在python中使用gotoxy的替代方法。
我有C代码,它绘制了一个垂直&屏幕中心的水平线如下:
#include<stdio.h>
#define HLINE for(i=0;i<79;i++)\
printf("%c",196);
#define VLINE(X,Y) {\
gotoxy(X,Y);\
printf("%c",196);\
}
int main()
{
int i,j;
clrscr();
gotoxy(1,12);
HLINE
for(y=1;y<25;y++)
VLINE(39,y)
return 0;
}
Python中是否还有类似gotoxy()
的内容?
答案 0 :(得分:3)
首先,标准C中没有gotoxy
或clrscr
这样的东西。您正在使用提供它们的特定于平台的库。 Python的解决方案是相同的:使用库。一个支持大量终端并且是Python发行版的一部分的库是curses
。有关文档,请参阅http://docs.python.org/2/library/curses.html。
答案 1 :(得分:1)
根据this
我试过了 :
x = 4,y = 3
print "%c[%d;%df" % (0x1B, x, y),
它有效 谢谢Rutrus
答案 2 :(得分:1)
我发现这样做的最好方法是编写一个gotoxy函数:
def gotoxy(x,y):
print ("%c[%d;%df" % (0x1B, y, x), end='')
这适用于python3
。如果您想使用python2
,则需要以下行:
from __future__ import print_function
答案 3 :(得分:0)
在Linux和其他类UNIX系统上,您应该使用NCURSES libraty。见python ncurses howto。
在Windows上,没有ncurses。您可以使用Console模块。
考虑替代方案。使用现有的GUI库会简单得多。这是list of crosspatform python UI libs。
答案 4 :(得分:0)
https://pypi.python.org/pypi/npyscreen
尝试上面的链接,它奇妙地集成了“大”GUI库(如GTK,Qt,Tkinter等)的编码风格和ncurses表示。
答案 5 :(得分:0)
根据您的系统,可能值得考虑使用wconio库。无论如何,我在这里提到它是另一种选择,它有益于进行搜索的任何人。
如其他地方所述,Borland Pascal的gotoxy()和亲戚先后进入Turbo C的conio.h和其他C,但它们都不属于C语言。
wconio是conio模块中Python的部分端口,请参见
http://newcenturycomputers.net/projects/wconio.html
也https://docs.python.org/3/using/windows.html?highlight=wconio
答案 6 :(得分:0)
我从 https://www.programmersought.com/article/64334507936/ 中找到以下代码,并通过添加 gotoxy() 函数完成它。
您应该首先导入 ctypes 模块:
import ctypes
class COORD(ctypes.Structure):
_fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]
def __init__(self,x,y):
self.X = x
self.Y = y
def gotoxy(x,y):
INIT_POS=COORD(y,x)
STD_OUTPUT_HANDLE= -11
hOut = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
ctypes.windll.kernel32.SetConsoleCursorPosition(hOut,INIT_POS)
你应该只用 x 和 y 初始化 gotoxy(x,y)。 例如:
gotoxy(12,5)