如何用Tkinter创建与macOS视频窗口同比例的窗口?
解决Tkinter创建1080x1920竖屏窗口的问题
你当前的代码问题在于Canvas使用了fill="both", expand=True,会让画布随窗口自适应拉伸,加上主窗口未锁定尺寸,导致原本的1080x1920竖屏布局被横向拉伸。以下是修正方案:
核心修改点
- 锁定主窗口尺寸为1080x1920,禁止调整大小
- 移除Canvas的自适应拉伸参数,保持固定尺寸
修正后的完整代码
import tkinter as tk class App(tk.Tk): def __init__(self): super().__init__() self.title("竖屏视频预览") # 设置窗口固定尺寸为1080宽、1920高 self.geometry("1080x1920") # 禁止用户拖动调整窗口大小 self.resizable(width=False, height=False) self.background = tk.PhotoImage(file="./assets/test.png") # 创建与窗口尺寸一致的Canvas self.canvas = tk.Canvas(self, width=1080, height=1920, bg="white") # 直接pack,不启用自适应拉伸 self.canvas.pack() # 左上角锚定放置背景图 self.canvas.create_image(0, 0, image=self.background, anchor="nw") if __name__ == "__main__": app = App() app.mainloop()
关键说明
self.geometry("1080x1920"):直接定义窗口的初始宽高,确保竖屏比例(9:16)self.resizable(...):锁定窗口尺寸,避免误操作导致窗口变形- 移除
fill="both", expand=True:让Canvas保持固定的1080x1920尺寸,与窗口完全匹配
内容的提问来源于stack exchange,提问作者plus
相关产品推荐
相关产品推荐

