【发布时间】:2015-06-05 15:58:30
【问题描述】:
我目前是一名正在上初级编程课程的高中生。我们刚刚开始了一个新的单元学习 Python 中的 Tkinter,我对我们的一个项目有几个问题。我决定做一个制作货币转换器的项目。我完成了有关 api 的所有内容,现在我在制作我的 gui 时遇到了障碍。我在将按钮移动到所需位置时遇到问题。目前我的按钮卡在中间,如果我更改行和列,它会移动到随机位置并破坏白色背景。任何帮助将不胜感激!
非常感谢。
import Tkinter as tk
import tkMessageBox
CURRENCY_CODES = ('USD','GDP')
class Application(tk.Frame):
def __init__(self, parent = None):
tk.Frame.__init__(self, parent)
self.parent = parent
self.setupUI()
self.createWidgets()
def setupUI(self):
self.parent.title("User Input")
self.grid()
self.centerWindow()
def centerWindow(self):
app_width = 307
app_height = 350
sw = self.parent.winfo_screenwidth()
sh = self.parent.winfo_screenheight()
x = (sw - app_width)/2
y = (sh - app_height)/2
self.parent.geometry('%dx%d+%d+%d' % (app_width, app_height, x, y))
def createWidgets(self):
self.emptyFrame = tk.Frame(self.parent,bg="white")
self.emptyFrame.grid(row=0,column=0,sticky="news")
self.parent.grid_columnconfigure(0,weight=1)
self.parent.grid_rowconfigure(0,weight=1)
【问题讨论】:
-
你的
OptionMenu(不是Button)是self.parent的一个孩子,所以grid()在第0行/第0列把它放在self.emptyFrame上面设置到同一个位置。如果您在其他地方grid()它,它将在self.parent的自己的行/列中,它没有像self.emptyFrame那样的白色背景。您可以使菜单小部件成为框架的子项,然后使用sticky在框架周围移动它。如果您希望它位于任意位置,请按照答案中的建议使用place()。 -
您的代码没有显示按钮。当你不包含实际代码时,很难看出你做错了什么。
-
您的标题询问的是带有框架的菜单格式,但您的问题是有关在窗口中组织按钮的问题。请将您的标题更改为与实际询问的内容相关的内容。
标签: python python-2.7 tkinter