如何在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”