能否在不使用Tkinter的情况下限制Python脚本输出窗口大小?
无需Tkinter固定Python程序终端窗口尺寸的方法
不同操作系统下,无需依赖Tkinter这类GUI库,就能实现终端窗口的尺寸固定与锁定,以下是分平台的具体方案:
Windows平台
方案1:批处理脚本启动
创建一个.bat文件,通过命令行参数和注册表设置直接控制窗口:
@echo off :: 设置窗口为80列、20行 mode con cols=80 lines=20 :: 锁定窗口大小(禁止拖动调整) reg add "HKCU\Console\%~n0" /v WindowSize /t REG_DWORD /d 0x00140050 /f >nul 2>&1 reg add "HKCU\Console\%~n0" /v ScreenBufferSize /t REG_DWORD /d 0x00140050 /f >nul 2>&1 :: 运行你的Python脚本 python your_script.py :: 可选:退出后恢复默认设置 reg delete "HKCU\Console\%~n0" /f >nul 2>&1
- 说明:
mode con命令直接设置窗口行列数;修改注册表项统一窗口与缓冲区尺寸,实现锁定效果。
方案2:Python内调用Windows API
用ctypes调用系统API,无需额外安装库:
import ctypes # 获取当前控制台窗口句柄 hwnd = ctypes.windll.kernel32.GetConsoleWindow() if hwnd: # 设置窗口位置(100,100)、宽400、高300 ctypes.windll.user32.SetWindowPos(hwnd, 0, 100, 100, 400, 300, 0x0001) # 移除可调整大小和最大化按钮的样式 style = ctypes.windll.user32.GetWindowLongPtrW(hwnd, -16) style &= ~0x00040000 # 移除WS_SIZEBOX(可拖动调整) style &= ~0x00010000 # 移除WS_MAXIMIZEBOX(最大化按钮) ctypes.windll.user32.SetWindowLongPtrW(hwnd, -16, style) # 你的原有业务代码 print("固定尺寸的终端窗口") input("按回车退出...")
Linux平台
方案1:用xterm启动脚本
通过xterm终端模拟器指定参数:
xterm -geometry 80x20 -fixed -e python3 your_script.py
- 参数说明:
-geometry 80x20:设置窗口为80列20行;-fixed:禁止调整窗口大小;-e:指定要执行的Python脚本。
方案2:ANSI控制码(部分终端支持)
通过输出ANSI控制码设置窗口尺寸,部分终端(如gnome-terminal、xterm)支持:
# 设置窗口为80列、20行 print("\033[8;20;80t") # 禁止调整大小(仅xterm等少数终端支持) print("\033[?1034h") # 你的原有业务代码 print("固定尺寸的终端窗口") input("按回车退出...")
macOS平台
方案1:Terminal.app命令行启动
通过open命令指定Terminal窗口参数:
# 启动指定尺寸的Terminal并运行脚本 echo 'python3 /path/to/your_script.py; read' > temp_run.sh && chmod +x temp_run.sh && open -a Terminal --args -e "./temp_run.sh" -geometry 80x20
- 说明:macOS Terminal的
-geometry参数支持有限,也可提前在Terminal偏好设置中保存固定尺寸的配置文件,启动时指定该配置。
方案2:ANSI控制码(同Linux)
部分终端(如iTerm2)支持ANSI控制码设置窗口:
# 设置窗口为80列、20行 print("\033[8;20;80t") # 你的原有业务代码 print("固定尺寸的终端窗口") input("按回车退出...")
内容的提问来源于stack exchange,提问作者Steel
相关产品推荐
相关产品推荐

