Tkinter图形计算器开发遇geometry参数格式错误:问题原因与解决方法咨询
问题根源与修正方案
为什么会出现bad geometry specifier错误?
Tkinter的geometry()方法要求传入的是字符串格式的窗口尺寸说明,格式必须是"宽度x高度"(注意这里是小写的字母x,不是乘法运算符*)。你代码里写的650*825是做了整数乘法运算,得到的结果是纯数字536250,完全不符合Tkinter对几何参数的格式要求,所以才会抛出这个错误。
如何修正?
我帮你整理了几个必须修改的点:
修正geometry参数格式
把window.geometry(650*825)改成window.geometry("650x825"),用字符串包裹宽高,并用小写x作为分隔符。修复拼写错误
你代码里的window.resiable(width=False,height=False)是拼写错误,正确的方法名是resizable(少了一个字母z),不修正的话这个窗口大小锁定的设置不会生效。补充窗口主循环
原代码里缺少window.mainloop()调用,这会导致窗口创建后直接退出,加上这个方法才能让窗口持续显示在屏幕上。优化PIL导入(可选)
如果你的图片后续出现加载失败问题,Tkinter自带的PhotoImage对部分图片格式支持有限,建议改用PIL的ImageTk来加载,导入语句改成from PIL import Image, ImageTk即可。
修正后的完整代码
from tkinter import * from PIL import Image, ImageTk # 优化导入(可选,提升格式兼容性) #============================= Main ============================= window = Tk() window.geometry("650x825") # 修正为符合要求的字符串格式 window.title('Calculator') window.resizable(width=False, height=False) # 修复拼写错误 window.configure(bg='gray') # 优化图片加载方式(可选) photo_bg = ImageTk.PhotoImage(Image.open(r'C:\Desktop\Captudsdre.png')) label_bg = Label(window, image=photo_bg) label_bg.place(x=100, y=150) window.mainloop() # 启动窗口主循环,维持窗口显示
内容的提问来源于stack exchange,提问作者user17285516
相关产品推荐
相关产品推荐

