如何在Python中检测窗口大小
如何查看窗口是否已调整大小?我从全屏开始,但如果我改变,使它适合我屏幕的一半,我所有的文字都会混淆 这是我的密码:如何在Python中检测窗口大小,python,text-alignment,python-textprocessing,Python,Text Alignment,Python Textprocessing,如何查看窗口是否已调整大小?我从全屏开始,但如果我改变,使它适合我屏幕的一半,我所有的文字都会混淆 这是我的密码: #导入操作系统 导入操作系统 #创建名为title的函数,用于打印标题屏幕 def title(): 打印('@-------------------------------------------------------------------------------------@'.center(os.get_terminal_size().columns),end='') 打
#导入操作系统
导入操作系统
#创建名为title的函数,用于打印标题屏幕
def title():
打印('@-------------------------------------------------------------------------------------@'.center(os.get_terminal_size().columns),end='')
打印(“| |”.center(os.get_terminal_size().columns),结束=”)
打印(“| | PyTerm v0.1.7 | |”中间(os.get_terminal_size()列),结束=”)
打印(“| |”.center(os.get_terminal_size().columns),结束=”)
打印('@-------------------------------------------------------------------------------------@'.center(os.get_terminal_size().columns),end='')
#调用函数
标题()
一旦我运行它,文本就会对齐,但当我进入全屏时,它们就会到处都是。有办法解决这个问题吗?我能感觉到用户何时调整了窗口的大小吗?我使用的是Windows10,使用的是Python 3.1.9。使用py运行它(C:\Windows\py.exe
)
这就是我运行它时的样子:
当我进入全屏时,这里是:
谢谢我没有Windows机器可供测试,但有一种可能是在循环中重新绘制控制台:
标题
功能offset
变量的大小调整值设置为新大小
导入操作系统
导入时间
def标题(偏移量值):
打印(“@----------------------------------------------------------------------------------------------------@.”中心(偏移量值),结束=“”)
打印(“| |”。中心(偏移量值),结束=”)
打印(“| | PyTerm v0.1.7 | |”。中心(偏移量|值),结束=”)
打印(“| |”。中心(偏移量值),结束=”)
打印('@----------------------------------------------------------------------------------------------------@'.中心(偏移量值))
如果名称=“\uuuuu main\uuuuuuuu”:
尽管如此:
#清除终端
#见:https://stackoverflow.com/questions/2084508/clear-terminal-in-python
os.system('cls'如果os.name='nt'或者'clear')
#重新绘制屏幕
offset=os.get\u terminal\u size()列
标题(抵销)
#等一会儿
时间。睡眠(1)
我在末尾有另一个while循环,带有用户输入。我应该把if语句放在哪里?我是否将if放在另一个while循环中?if语句/另一个while循环可能可以在第二个函数中处理;然后,第二个函数可以位于title(offset)
调用之后。不过也有一个副作用:如果您正在等待用户输入类似于var=input()
,那么终端只有在用户提供输入后才会重新绘制。您如何感知用户何时更改窗口大小?我现在可以修复文本,但我发现我的其他脚本存在一些问题,我可以创建一个if语句来检查用户是否更改了窗口大小。“检查和响应事件”稍微复杂一些(可能必须是一个单独的问题),它可能需要一个线程检查状态,然后响应事件。另一个选项可能类似于“Python Prompt Toolkit”