python - 在 Tkinter 中设置框架大小和位置

标签 python graphics tkinter

我正在尝试在 Tkinter 中设置框架大小和框架(主小部件)的位置。基于this answer ,我将其添加到我的代码中:

from Tkinter import *
import ctypes
user = ctypes.windll.user32
screensize = (user.GetSystemMetrics(0), user.GetSystemMetrics(1), user.GetSystemMetrics(2), user.GetSystemMetrics(3))

class GetWord:
    def __init__(self, master):
        master.geometry("%s+%s+%s+%s" % (screensize[0], screensize[1], screensize[2], screensize[3]))
        # I added the above in, but not sure how it works
        self.frame = Frame(master, width = screensize[0], height = screensize[1])
        self.frame.grid()

但是,执行此操作时,我收到 TclError:

Traceback (most recent call last):
  File #file path, line 39, in <module>
    f = GetWord(root)
  File #file path, line 8, in __init__
    master.geometry("%s+%s+%s+%s" % (screensize[0], screensize[1], screensize[2], screensize[3]))
  File "C:\Python2.7.3\lib\lib-tk\Tkinter.py", line 1534, in wm_geometry
    return self.tk.call('wm', 'geometry', self._w, newGeometry)
TclError: bad geometry specifier "1366+768+17+17"

我这样称呼这个类:

root = Tk(className='derp')
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
f = GetWord(root)
root.mainloop()

我该如何解决这个问题?我想让框架从屏幕中心开始,并以特定的窗口大小开始(现在它是全屏的,但我稍后会更改)。谢谢!

最佳答案

您需要使用字母“x”而不是“+”

master.geometry("%sx%sx%sx%s" % (screensize[0], screensize[1], screensize[2], screensize[3]))

关于python - 在 Tkinter 中设置框架大小和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14922937/

相关文章:

Python tkinter 列表框粗体

python - Yocto:在图像配方中创建符号链接(symbolic link)

python - 如何将向量之间的欧氏距离转换为相似度分数

Python tkinter列表框获取索引

python - tkinter:模拟时钟刷新 - "after"功能如何工作?

python - 为什么将列表与整数进行比较不会出错?

java - 如何设置ViewingPlatform和更新TransformGroup?

c - SDL_CreateRenderer() 与 SDL_CreateSoftwareRenderer()

java - 我该怎么做才能使程序不从最后添加的点开始绘制?

python - 如何使用多个 Tkinter 复选按钮对齐列?