[英]label layout using grid in tkinter
我在弄清楚如何使用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()
您無法創建兩個Tk
實例。 正如您所觀察到的,您將獲得兩個窗口。 這不是唯一的問題,只是最明顯的問題。
您需要傳入對包含這些標簽的winget的引用。 或者,將根窗口存儲為全局變量或對象的屬性。
要並排放置2個標簽,即label1和label2:
label1.grid(column=0, row=0)
label2.grid(column=1, row=0)
應該這樣做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.