使用from tkinter import *模块,能否重定位tkinter窗口?
解决
from tkinter import *下的窗口重定位问题 不管用哪种tkinter导入方式,geometry()都是窗口实例的核心方法,你只需要正确获取主窗口对象即可,和导入语法无关。以下是两种常见场景的实现:
1. 显式创建主窗口的情况
如果你的代码里显式创建了主窗口实例,直接调用它的geometry()方法即可,格式为"宽度x高度+水平偏移+垂直偏移":
from tkinter import * # 创建主窗口 root = Tk() # 将窗口定位到屏幕左上角向右200px、向下100px的位置,窗口大小设为400x300 root.geometry("400x300+200+100") # 其他业务代码... root.mainloop()
- 水平偏移:正数表示距离屏幕左边缘的像素数,负数表示窗口左侧超出屏幕左边缘的像素数
- 垂直偏移:正数表示距离屏幕上边缘的像素数,负数表示窗口顶部超出屏幕上边缘的像素数
2. 使用默认隐式窗口的情况
如果你的代码没有显式创建主窗口(直接调用控件时自动生成默认窗口),可以通过_default_root获取这个默认窗口实例,再调用geometry():
from tkinter import * # 假设已创建了Label、Button等控件,未显式声明主窗口 # 调整默认窗口的位置和大小 _default_root.geometry("300x200+800+100") mainloop()
简单来说,你之前搜到的方法核心就是调用geometry(),只是导入方式不同导致获取窗口对象的写法有区别——用import tkinter as tk时是tk.Tk(),用from tkinter import *时直接是Tk()或者_default_root,本质逻辑完全一致。
内容的提问来源于stack exchange,提问作者SavageCoder
相关产品推荐
相关产品推荐

