我在弄清楚如何正确使用tkinter网格时遇到了一些麻烦。我只想要两个标签并排出现。
当我执行以下操作时,它们会显示在与我的应用程序不同的窗口中。我很困惑,因为我的应用程序上的按钮显示为我想要的(不使用网格),但我无法弄清楚网格中的标签。
//this is just a snippet from a function
self.root = tk.Tk()
tk.Label(master=self.root, text=directory).grid(row=0,column=0)
tk.Label(master=self.root, text=directory).grid(row=0,column=1)
根窗口是在应用程序的不同部分创建的,所以我在这里做的就是制作另一个(我想)。我只是希望标签出现在已经创建的窗口中,但我无法弄清楚我应该引用它的内容。 这是一个单独的文件,包含带有上面代码的文件
from Tkinter import *
import tkinter as tk
import widgetActions
import shutil
class mywidgets(widgetActions.Actions):
def __init__(self,root):
frame = tk.Frame(root)
self.makeMenuBar(frame)
frame.pack()
frame.config(width=400)
self.body()
return
def makeMenuBar(self,frame):
menubar = Frame(frame,relief=RAISED,borderwidth=1)
menubar.pack()
mb_file = Menubutton(menubar,text='file')
mb_file.pack(side=LEFT)
mb_file.menu = Menu(mb_file)
mb_file.menu.add_command(label='open', command = self.openfile)
mb_file.menu.add_command(label='close', command = menubar.quit)
mb_file['menu'] = mb_file.menu
return
def body(self):
self.filename()
def main():
root = tk.Tk()
k=mywidgets(root)
root.title('menu bar')
root.mainloop()
main()
答案 0 :(得分:2)
您无法创建Tk
的两个实例。正如您所观察到的,您将获得两个窗口。这不是唯一的问题,只是最明显的问题。
您需要传入对包含这些标签的winget的引用。或者,将根窗口存储为全局变量,或者存储为对象的属性。
答案 1 :(得分:0)
并排放置2个标签,即label1和label2:
label1.grid(column=0, row=0)
label2.grid(column=1, row=0)
应该这样做