【问题标题】:TclError: bad geometry specifier [closed]TclError:错误的几何说明符
【发布时间】:2014-12-23 17:14:20
【问题描述】:

我尝试使用以下脚本使用 python Tkinter 为 Tkinter GUI 定义几何图形:

from Tkinter import *
root = Tk() 
w=300
h=200
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws/2) - (w/2)    
y = (hs/2) - (h/2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.mainloop()`

我收到以下错误:

 TclError: bad geometry specifier "1920*1200+150+100".

【问题讨论】:

  • 该错误看起来像是您使用的是'%d*%d+%d+%d' % (w, h, x, y) 而不是'%dx%d+%d+%d' % (w, h, x, y)。你确定你使用的是 x 而不是 *?
  • 你是对的,我使用 * 而不是 x...现在它正在工作
  • 我会将其作为答案发布,以便每个人都可以看到问题已得到解答。
  • 同样rot.geometry(...应该是root.geometry(...

标签: python python-2.7 tkinter


【解决方案1】:

该错误看起来您使用的是'%d*%d+%d+%d' % (w, h, x, y) 而不是'%dx%d+%d+%d' % (w, h, x, y)
您确定您使用的是x 而不是*

【讨论】:

    【解决方案2】:

    使用 x(character) 代替 *

    root.geometry("100x100")
    

    【讨论】:

      【解决方案3】:

      你应该使用

      main_application.geometry('1200x800')

      不是

      main_application.geometry('1200*800')

      区别在于x*

      【讨论】:

        【解决方案4】:

        始终确保使用“x”这个而不是“*”这个。

        【讨论】:

          【解决方案5】:

          即使这样也行不通,因为有空格:

          root.geometry('200x100 + 300 + 250') 
          

          因此,您还应该注意不要在数字和 + 符号之间包含任何空格。这有效:

          root.geometry('200x100+300+250') 
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-08-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多