【发布时间】:2016-02-07 18:41:34
【问题描述】:
我想要做的是让我的窗口位于屏幕的右上角。当您浏览不同的选项时,窗口会根据显示的内容更改大小。所以我需要一些东西来检查窗口的当前大小,然后根据它的大小定位它。
我的代码:
from tkinter import *
class Main:
def __init__(self, master):
self.master = master
self.win_1()
def win_1(self):
for child in self.master.winfo_children():
child.destroy()
Text(self.master, width = 10, height = 3).grid(columnspan = 2)
Button(self.master, text = 'Win 2', width = 7, command = self.win_2).grid(row = 2, column = 0)
Button(self.master, text = 'Exit', width = 7, command = self.master.destroy).grid(row = 2, column = 1)
self.position_win()
def win_2(self):
for child in self.master.winfo_children():
child.destroy()
Text(self.master, width = 20, height = 10).grid()
Button(self.master, text = 'Win 1', command = self.win_1).grid()
self.position_win()
def position_win(self):
self.h = self.master.winfo_height()
self.w = self.master.winfo_width()
self.master.geometry('-%d+%d' % (self.w, self.h))
root = Tk()
Main(root)
root.mainloop()
这是我能想出的最好的方法来实现我的目标。当我运行它时,窗口开始完美地位于右上角。单击按钮时,窗口 2 的右上角设置为窗口 1 的左下角。然后,当您单击返回窗口 1 时,它将右上角设置为与窗口 2 中相同的位置。从这一点开始,窗口之间的循环在窗口的右上角起作用,但窗口不在屏幕的右上角。我确信这很清楚,但如果你运行代码你会明白我在说什么。
为什么会这样,我该如何解决?
谢谢!
【问题讨论】:
标签: tkinter position geometry python-3.3